我有一个 ASP.net 应用程序,它正在对位于同一目录中的 VB.net Web 服务进行 jQuery AJAX 调用。在我们的测试盒上,一切都运行良好。在生产中,如果我转到 web 服务的测试表单,我可以检索数据。但是,AJAX 调用会导致 500 错误。这是 AJAX 代码:
$.ajax({
type: "POST",
url: "webservice.asmx/Action",
data: "{'SearchString':'" + request.term + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (res) {
alert("Success");
},
error: function () {
alert("Fail");
}
});
我试过了:
- 在该调用中摆弄数据参数的格式
- 设置 web 服务的响应格式 ([ScriptMethod(ResponseFormat = ResponseFormat.Json)])
- 将此添加到 Web.Config:
.
<webServices>
<protocols>
<add name="HttpSoap" />
<add name="HttpGet" />
<add name="HttpPost" />
</protocols>
</webServices>
一切都是徒劳的。这仅在从此函数调用时失败,并且仅在我们的生产盒上。如果我直接从 .asmx 页面的表单加载操作,它工作正常。
我的想法是我们的测试服务器和生产服务器之间一定存在配置差异,但我找不到会产生任何后果的配置差异。此外,当服务器以相同的方式处理它们时,什么样的配置会导致它在以一种方式调用而不是另一种方式调用时不起作用?
有没有人遇到过他们已经解决的类似问题?