2017-07-18 71 views
0

我有jsGrid工作的全部CRUD操作,但是當我添加一條新記錄時,post方法以某種方式將所有字段轉換爲字符串,然後再傳輸到我的API。我的API將所有字段接收爲字符串,無論它們是字符串,數字還是布爾值。jsGrid插入項問題

這裏是我的insertItem功能:

  console.log("data before post: " + JSON.stringify(item)); 
      insertItem: function (item) { 
       var d = $.Deferred(); 

       $.ajax({ 
        type: "POST", 
        url: "https://myserver...", 
        data: item, 
        dataType: "json", 
       }).done(function (response) { 
        console.log("done: " + JSON.stringify(response)); 
        d.resolve(response); 
       }).fail(function(msg) { 
       console.log("fail" + msg); 
       d.reject(); 
      }); 
     } 

如果我CONSOLE.LOG項目目標之前$就它顯示數字字段正確。例如:

data before post: {"question":"My Question","value":45,"timeout":10, "isActive":true } 

但在完成功能的console.log中,JSON如下所示,這也正是它是如何在服務器上接收到的:

done: {"question":"My Question","value":"45","timeout":"10", "isActive":"true"} 

如果我使用郵遞員,發佈適當的json對象,一切都很好,數據類型是他們應該的,所以我的API沒有錯。 api響應也會在收到json對象時返回它。

不知何故,jsgrid將所有屬性值轉換爲字符串,然後發佈到我的API。這真的很煩人。

更新: 即使我嘗試更換數據:與項目:

data: {"question":"myquestio77", "value": 77} 

77仍然由我的API收到的 「77」。

回答

0

我發現這裏的答案:https://stackoverflow.com/a/34628133/679439

基本上,你有你送它,當然加上這讓我錯過了之前的contentType到字符串化的數據。你必須同時做兩件事。

data: JSON.stringify(data), 
contentType: 'application/json'