2014-10-12 36 views
0

我正在使用jQuery的$.ajax發送一些數據給我的服務器localhost。數據爲JSON對象。pareser錯誤發送數據爲json到php腳本使用jquery ajax

如下:

的JavaScript

var jso={ 
    "data": { 
     "Game_name": "Road Rash", 
     "cheat": "xyzzyspoon!", 
     "effects": [ 
      { 
       "nitro": true 
      }, 
      { 
       "chain": false 
      } 
     ] 
    } 
}; 
function sendData(){ 
var queryString=JSON.stringify(jso); 
$.ajax({ 
    type: "POST", 
    url: "/gamers_cheats.php", 
    contentType: "application/json; charset=utf-8", 
    traditional: true, 
    dataType: 'json', 
    data: queryString, 
    success: function(data){ 
     console.log(data); 
    }, 
    error: function(data,textStatus,jqXHR){ 
    alert("Unknown Error occured :- \n "+textStatus+"\n error"); 
    console.log("Unknown Error occured :- \n "+textStatus+"\n error"); 
    } 
}); 
} 
sendData(); 

,並在我的php文件處理數據:

gamers_cheats.php:

<?php 
var_dump($_POST); 
echo"\n Count:- ".count($_POST); 
// This is Just a demo file 
?> 

但問題是$.ajax警告error:部分與textStatus parseError。即使我沒有使用JSON.stringify,也是如此。

並且如果該行:

contentType: "application/json; charset=utf-8", 
    traditional: true, 
    dataType: 'json', 

然後除去請求被髮送到斷絕但因爲它在JSON對象增加了額外的斜槓(\)到每一個("),其不是有效的請求。

喜歡:

\"data\": { 
     \"Game_name\": \"Road Rash\", 
     \"cheat\": \"xyzzyspoon!\", 
     \"effects\": [ 
      { 
       \"nitro\": true 
      }, 
      { 
       \"chain\": false 
      } 
     ] 
    } 

所以,雖然它處理在服務器端提供了錯誤。有沒有什麼辦法可以使用jquery ajax正確發送POST JSON數據並在服務器上正確處理它?

還有一個問題,我可以在JSON格式中添加額外的$_POST參數嗎?但這也不起作用(這並不重要,只是好奇而已)。

僅供參考我正在使用PHP 5.2和JSON版本1.7.2與JSON2.js運行IIS 7服務器。

希望這裏的專家能幫到我。

+0

看起來像服務器問題給我;魔術引號? – 2014-10-12 09:30:18

+0

@Ja͢ck,我不這麼認爲,請求已啓動,但沒有收到數據。 – 2014-10-12 09:32:12

+0

首先,你的服務器腳本不會返回JSON,其次,JSON數據不能通過'$ _POST'獲得。 – 2014-10-12 09:35:19

回答

0

刪除行'var queryString = JSON.stringify(jso);'並傳遞對象jso作爲數據可能會有所幫助。嘗試一次。