Backbone.js:具有空值的POST请求

Backbone.js:具有空值的POST请求,post,backbone.js,http-post,Post,Backbone.js,Http Post,我正试图提出一个发帖请求。 这是我的代码: var myModel = new MydModel({ content: "ciao" }); console.log(myModel.get("content")); // "ciao" myModel.save(); 如果我查看网络活动,它如下所示: 响应部分{id:0,内容:,…} 在头部分:请求有效负载{“内容”:“ciao”} 这是我的模型: def

我正试图提出一个发帖请求。 这是我的代码:

        var myModel = new MydModel({
            content: "ciao" 
        });
        console.log(myModel.get("content")); // "ciao"
        myModel.save();
如果我查看网络活动,它如下所示:

响应部分
{id:0,内容:,…}

在头部分:
请求有效负载{“内容”:“ciao”}

这是我的模型:

define([], function () {
    var MyModel = Backbone.Model.extend({

        url: function url ()  
        {
            return "http://localhost/users";
        }
    });

    return MyModel;
});

是我的问题还是服务器部分的问题?

发送/接收vs请求/响应

  • 服务器接收请求并发送响应
  • 客户端发送请求并接收响应
简言之

  • 如果
    {id:0,content:,…}
    (响应)错误,则是您的服务器
  • 如果
    {“content”:“asdasdsa”}
    (请求)错误,则是您的客户机

接收“主干客户端”发送到Apache服务器的JSON负载几乎没有问题

您需要做的就是从服务器端的输入中手动解析JSON负载(“php://input“,对于PHP),如下所示:

if($_SERVER['REQUEST_METHOD'] == 'PUT' || $_SERVER['REQUEST_METHOD'] == 'POST') {  
  $postStr = file_get_contents("php://input");
  //json_decode throws error or returns null if input is invalid json
  try {
    $json = json_decode($postStr, true);
    if(empty($json)) { 
      throw new Exception("Not valid json");
    }

  //must not be json, try query str instead 
  } catch(Errfor $e) { 
    $postVars = parse_str($postStr);
    foreach($postVars as $key=>$data) {
      $_POST[$key] = $data;
    }
  }
}
您可以在这里找到完整的解释:

很抱歉,我想说我的有效负载是
{“content”:“ciao”}
与myModel.get(“content”)一样。那么,我能确定问题出在服务器部分吗?谢谢。如果模型真的只是你发布的代码,是的,这是服务器问题。