jQuery ajax() POST для Slim PHP рамки
Используя jquery mobile+phonegap, пытаясь POST к приложению Slim, у меня есть этот код:
$( document ).on( "vclick", "#test_form", function() {
$.ajax({
type: "POST",
url: "http://mydomain.com/slim/",
crossDomain: true,
beforeSend: function() {
$.mobile.loading('show')
},
complete: function() {
$.mobile.loading('hide')
},
data: {namec:$("#namec").val()},
dataType: 'json',
success: function(response) {
//console.error(JSON.stringify(response));
alert(response);
},
error: function() {
//console.error("error");
alert('Not working!');
}
});
});
Я проверил это на других не Slim Slim PHP страницах, и все работает нормально, но я получаю ошибку ajax с Slim.
Приложение My Slim:
<?php
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$app->post('/', function () {
echo json_encode($_POST("namec"));
});
$app->run();
Просто начал использовать Slim, поэтому не уверен, что я могу делать неправильно.
2 ответа
Решение
Ты пытался:
$app->post('/', function() use ($app) {
// ...
$req = $app->request();
echo json_encode($req->post('namec'));
//...
}
Согласно slim v3 вы можете получить доступ к объекту запроса с помощью $request->getParams()
$app->get('/', function (Request $request, Response $response){
$data = $request->getParams()
echo json_encode($data['namec']);
}
см. документацию здесь https://www.slimframework.com/docs/v3/objects/request.html