2008-09-19 105 views
0

我有一个代码在我的活网站上运行正常,但在本地开发服务器上没有问题。为什么Ajax脚本不能在本地工作?

我有一个更新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);

当我尝试我的本地机器上运行此,没有被传递到查询字符串。

然而,混淆问题,下面的代码确实工作在本地:

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);

但是,我不能用我的本地机器上工作的代码,因为它没有在现场工作服务器(出于安全原因,他们已经改变了他们在querystrings上的政策)!

我可以提醒Querystring出来,所以我知道它传递到我的本地机器上的功能。我唯一能想到的就是它是一个硬件/更新问题。

直播网站正在运行IIS 6(在WIN 2003箱,我认为)

本地站点运行IIS 5.1(在XP专业版)

是否有某些更新或我丢失的东西或某事?

+0

您正在使用哪种浏览器? – Jim 2008-09-19 21:58:11

回答

1

在第一个例子中是否有明确设置Content-Length标题的原因?你... 不应该需要做到这一点,我不会感到惊讶,发现它造成的问题。

哦,并检查你的编码程序。规则不是相当查询字符串和发布的表单数据相同。

0

我猜Shog9是对的,而且IIS 6我聪明地忽略了你的请求并发送了正确的头文件,而5.2引发了一个错误。

相关问题