我试图通过客户端脚本连接到.asmx webservice(跨域)现在实际上我遇到了使用POST的问题,因为它被阻止并且在firebug中给了我:
选项添加(方法名称)500内部服务器错误。
我通过使用GET来绕过这个问题,它在没有输入任何参数时工作正常但是给我带来参数问题。请参阅下面的代码。
以下是我尝试使用参数进行解决的一个简单示例。
function CallService() {
$.ajax({
type: "GET",
url: "http://localhost:2968/MyService.asmx/Add",
data: "{'num1':'" + $("#txtValue1").val() + "','num2':'" + $("#txtValue2").val() + "'}",
//contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function(data)
{
alert(data.d);
}
});
[WebMethod, ScriptMethod(UseHttpGet = true, XmlSerializeString = false, ResponseFormat = ResponseFormat.Json)]
public string Add(int num1, int num2)
{
return (num1 + num2).ToString();
}
答案 0 :(得分:0)
您应该尝试解决服务上的错误 - 如果WSDL说您应该能够POST一个请求并且您正在传递正确的请求,那么它不应该是错误的,这是服务提供商修复的。他们返回的错误完全可能与您发送无效参数有关,因此请在引用服务提供商之前检查您的请求是否已发现。
他们可以查看他们的错误日志,或者他们的事件查看器,以查找确切的错误消息,出于安全原因,这些消息可能不会公开。