簡體   English   中英

為什么Ajax腳本不能在本地工作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM