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