2012-05-17 42 views
0

我正在嘗試發出POST請求。 這裏我的代碼:Backbone.js:具有空值的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; 
}); 

它是我的問題還是它在服務器部分?

回答

2

發送/接收VS請求/響應

  • 服務器接收請求併發送響應
  • 客戶端發送請求,並在短

      接收響應

  • 如果{id:0, content:"", ……}(響應)是錯誤的,這是你的服務器
  • 如果{"content":"asdasdsa"}(請求)是錯誤的,這是你的客戶
+0

對不起,我會說我的有效載荷是'{「content」:「ciao」}'在myModel.get(「content」)中。說,我可以確定問題出在服務器部分嗎?謝謝。 – underscore666

+0

如果模型真的只是你發佈的代碼,是的,這是一個服務器問題。 –

0

沒有與接收JSON-有效載荷「中堅客戶」發送小問題到你的Apache服務器。

所有你需要做的是手動輸入解析JSON有效載荷在服務器端(「PHP://輸入」,對於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; 
    } 
    } 
} 

充分說明,你可以找到這裏: http://colinbookman.com/2014/04/08/php-puts-posts-and-backbone-js/