2014-03-04 32 views
0

當使用jQuery的ajax發佈一個參數的PHP頁面是罰款時,該字符串包含只有一個字jQuery的時候參數有多於一個字ajax開機自檢失敗

$.ajax({ 
type: "POST", 
dataType: "json", 
data: { query: 'london'}, 
url: "/autosuggest.php", 
}); 

但2個字的空間分隔它返回400嚴重格式化的請求錯誤

$.ajax({ 
type: "POST", 
dataType: "json", 
data: { query: 'london h'}, 
url: "/autosuggest.php", 
}); 

任何一個可以指向正確的方向嗎?

+0

不這麼認爲,我不張貼到任何參數的URL,將正在發送數據作爲JSON –

+0

jQuery的轉換對象轉換爲字符串併爲您編碼,這個問題很可能是服務器端,我們可以整天查看ajax調用,而不會接近答案。 – adeneo

+0

php方面是相當簡單的,它使捲曲調用 –

回答

0

默認情況下jQuery.ajaxcontentType=application/x-www-form-urlencoded發送數據。這意味着,你的參數添加到網址,並且你的url看起來像這樣:

/autosuggest.php?query=london h 

當然這是無效的url。要通過字符串空格你的PHP頁面,你應該使用contentType=application/json

$.ajax({ 
    type: "POST", 
    dataType: "json", 
    contentType: 'application/json', 
    data: { query: 'london h'}, 
    url: "/autosuggest.php", 
}); 
+0

當我轉儲$ _POST serverside與該代碼它是emtpy –

+0

我添加contentType有錯誤,它應該是'application/json',再次檢查 – alexmac

+0

是的,我已經糾正那仍然是空的 –