我正在使用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服務器。
希望這裏的專家能幫到我。
看起來像服務器問題給我;魔術引號? – 2014-10-12 09:30:18
@Ja͢ck,我不這麼認爲,請求已啓動,但沒有收到數據。 – 2014-10-12 09:32:12
首先,你的服務器腳本不會返回JSON,其次,JSON數據不能通過'$ _POST'獲得。 – 2014-10-12 09:35:19