在PHP中解码backbone.JSON包

在PHP中解码backbone.JSON包,php,jquery,json,backbone.js,Php,Jquery,Json,Backbone.js,因此,我一直无法解码从backbone.js应用程序发送到服务器的有效JSON请求。无论我尝试了什么,解码的$\u POST数据都返回null。我翻遍stackoverflow,发现: 这似乎是一种黑客行为,所以我想知道是否有更好的方法在PHP中处理来自主干网的JSON数据。在PHP中接收和解码从backbone.js应用程序发送的JSON数据的正确方法是什么?您应该检查用于向脚本发送数据的请求方法,如下所示: switch ($_SERVER['REQUEST_METHOD']) {

因此,我一直无法解码从backbone.js应用程序发送到服务器的有效JSON请求。无论我尝试了什么,解码的$\u POST数据都返回null。我翻遍stackoverflow,发现:


这似乎是一种黑客行为,所以我想知道是否有更好的方法在PHP中处理来自主干网的JSON数据。在PHP中接收和解码从backbone.js应用程序发送的JSON数据的正确方法是什么?

您应该检查用于向脚本发送数据的请求方法,如下所示:

switch ($_SERVER['REQUEST_METHOD'])
{
    case 'POST':
    {
      // do something
    }
    break;

    case 'GET':
    {
      // do something else
    }
    break;

    case 'PUT':
    {
      // your snippet goes here
    }
    break;

    case 'DELETE':
    {
      // do something when request method == DELETE
    }
    break;
}
您发布的代码是在放置或删除请求_方法时应该使用的代码。这根本不是黑客

您还可以配置主干网通过POST发送数据,方法如下:

Backbone.emulateHTTP = true;
从主干网手册:

如果要使用不支持的旧web服务器 主干网的默认REST/HTTP方法,您可以选择启用 Backbone.ehttp。设置此选项将伪造PUT和DELETE 使用HTTP POST请求,设置X-HTTP-Method-Override头 用真实的方法。如果emulateJSON也处于启用状态,则true方法将 作为附加的_方法参数传递


我也在使用这个解决方案,我不认为有更好的方法…我的api是RESTful的,我更关心的是无法以正常的方式访问get/post/put。简单的答案是:不阅读就无法访问put和DELETEphp://inputMore PHP手册中的信息:
Backbone.emulateHTTP = true;