我正在尝试使用 jQuery 对位于同一网站下的 C# Web 服务进行 AJAX 调用。无论我找到/尝试什么,我都会不断收到 500 错误:
Request format is unrecognized for URL unexpectedly ending in '/MyTest'.
来自网页的 jQuery AJAX 调用
$.ajax({
type: "POST",
url: 'http://172.1.1.10/MYService/MyService.asmx/MyTest',
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data);
},
error: function (data, errorThrown) {
alert("Fail");
alert(errorThrown);
}
});
Web 服务 (MyService.asmx) 代码背后
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string MyTest()
{
return "Hello World";
}
是的,我在顶部未注释以下内容:
[System.Web.Script.Services.ScriptService]
当我尝试加载我的网页时,我收到“失败”的警报窗口。这是我收到 500 错误的时候(见帖子顶部)。
太多人建议将此添加到 Web 服务的 web.config 中:
网络服务 (Web.config)
<configuration>
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>
添加后,我可以使用以下地址访问本地计算机:
http://172.1.1.10/MYService/MyService.asmx/MyTest
我得到了“Hello World”的正确响应。在添加之前,我会在本地收到相同的 500 错误消息。
Web 服务和网站都设置在同一个 IIS 实例上,每个实例都作为自己的应用程序,位于 IIS 中的同一个网站下。我知道这不是跨域问题,因为如果这是真的,我没有收到您通常会收到的 503 错误,也没有收到 File Not Found 的 404 错误。
我在网上搜索过,似乎找不到解决办法。