[英]Why won't an Ajax Script Work Locally?
我有一個問題,同一段代碼在我的實時網站上運行良好,但在我的本地開發服務器上卻無法正常運行。
我有一個更新div的Ajax函數。 以下代碼可在實際站點上運行:
self.xmlHttpReq.open("POST", PageURL, true); self.xmlHttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); self.xmlHttpReq.setRequestHeader("Content-length", QueryString.length); //..update div stuff... self.xmlHttpReq.send(QueryString);
當我嘗試在本地計算機上運行此命令時,沒有任何內容傳遞給QueryString。
但是,令人困惑的是,以下代碼在本地運行:
self.xmlHttpReq.open("POST", PageURL+"?"+QueryString, true); self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); //..div update stuff.. self.xmlHttpReq.send(QueryString);
但是,我無法使用在本地計算機上運行的代碼,因為它在實時服務器上不起作用(出於安全原因,他們已更改了對查詢字符串的策略)!
我可以將Querystring發出警報,以便知道它已傳遞到本地計算機的函數中。 我唯一能想到的是這是硬件/更新問題。
Live Site正在運行IIS 6(我認為是在WIN 2003機器上)
本地站點正在運行IIS 5.1(在XP Pro上)
是否有一些更新或我缺少的東西?
您是否有理由在第一個示例中明確設置Content-Length
標頭? 你...... 應該不需要做到這一點,我也不會驚訝地發現它造成的問題。
哦,請檢查您的編碼例程。 規則是不能很好地滿足查詢字符串相同,提交的表單數據。
我猜想Shog9是正確的,並且IIS 6我足夠聰明,可以忽略您的請求並發送正確的標頭,而5.2會引發錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.