我有以下的JavaScript/Mootools的代碼:MooTools的請求對象不是讓我在我的查詢字符串「+」號
var str = self.tI.get('value').replace(/\s/g,'+'),
data = 'action=getplaces&str=' + str + '&latLng=' + $('coords').get('value'),
r = new Request({
url: 'action.php',
method: 'get',
link: 'cancel',
onSuccess: function (response) {
/* Do Stuff */
}
}).send(data);
console.log(str);
在第一行我+標誌更換任何空間。當我在控制檯中記錄str的值時,我會得到相應的值(即:'blabla + bla')
但是,當我發送請求時,我的請求失敗。如果我查看標題和查詢字符串,+符號會簡單地用空格替換(即:'blabla bla')
這是怎麼回事?有沒有辦法解決它?
嘗試像這樣對str進行urlencode:'str = encodeURIComponent(str);'。哦,還有一件事,你爲什麼要用「+」替換空格?爲什麼不用uri編碼來編碼空間呢? – Alxandr
還有一件事,你說你看看請求頭。你是從服務器還是客戶端做到這一點?如果它在服務器上,這可能意味着服務器已將空間解析爲+(我知道在某些情況下可能會發生這種情況)。 – Alxandr
@Alxandr:客戶端。只需Chrome/Firefox網絡面板即可。 – ReX357