4

使用 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 PHP 页面对此进行了测试,一切正常,但我得到了 Slim 的 ajax 错误。

我的苗条应用程序:

<?php
require 'Slim/Slim.php';

\Slim\Slim::registerAutoloader();

$app = new \Slim\Slim();

$app->post('/', function () {
    echo json_encode($_POST("namec"));
});

$app->run();

刚开始使用 Slim,所以不确定我做错了什么。

4

2 回答 2

8

你有没有尝试过:

$app->post('/', function() use ($app) {
       // ...
       $req = $app->request();
       echo json_encode($req->post('namec'));
       //...
}

这个页面也应该有帮助

于 2013-06-10T00:30:08.340 回答
0

根据 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#route-object

于 2018-02-23T15:18:09.190 回答