0

我正在尝试发出 POST 请求。这是我的代码:

        var myModel = new MydModel({
            content: "ciao" 
        });
        console.log(myModel.get("content")); // "ciao"
        myModel.save();

如果我查看网络活动,它看起来像这样:

响应部分{id:0, content:"", ……}

在标题部分:Request Payload {"content":"ciao"}

这是我的模型:

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

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

    return MyModel;
});

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

4

2 回答 2

2

发送/接收与请求/响应

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

简而言之

  • 如果{id:0, content:"", ……}(响应)错误,那是你的服务器
  • 如果{"content":"asdasdsa"}(请求)是错误的,那是你的客户
于 2012-05-17T16:13:02.903 回答
0

接收“Backbone-client”发送到您的 Apache 服务器的 JSON 有效负载几乎没有问题。

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

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;
    }
  }
}

您可以在这里找到完整的解释:http: //colinbookman.com/2014/04/08/php-puts-posts-and-backbone-js/

于 2014-07-15T10:24:53.747 回答