这里很有趣。我有一个 ASP.NET 1.1 项目,其中包含一个 Web 服务。我正在使用 jQuery 的 AJAX 功能从客户端调用一些服务。这就是我的代码的样子:
$.ajax({
type: "POST",
url: 'foo.asmx/functionName',
data: 'foo1=' + foo1 + '&foo2=' + foo2,
dataType: "xml",
success: function(xml) {
//do something with my xml data
},
error: function(request, error){
//handle my error
}
});
当我从本地主机上的 IDE 运行该站点时,这非常有用。但是,当我将此站点部署到任何其他服务器时,我收到来自 jQuery 的 parsererror 错误。它似乎甚至没有调用我的服务,因为我放入了一些代码以将日志文件写入磁盘,但它没有将其写入磁盘。
应该从我的本地主机和我部署到的服务器返回完全相同的 XML。
有什么想法吗?
最佳答案
我找到了这个问题的答案。使用 Firebug 进行一些调试后,我注意到服务器返回了一些错误 HTML。我查看了服务器端错误日志记录,异常是“请求格式无法识别。”
经过一番挖掘后,我发现对 web.config 进行以下更改可以纠正错误:
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
现在我有点感兴趣的是,我的本地主机没有该 web.config 条目并且无论如何都可以工作。如果有人能更好地理解这一点,我想知道为什么。
感谢您的所有建议。
关于asp.net - jQuery AJAX 和 ASP.NET Web 服务在本地工作,但不能远程工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2586003/