通过jquery跨域调用Web服务

时间:2010-05-08 11:16:30

标签: web-services jquery cross-domain

我试图通过客户端脚本连接到.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);
            }

        });

web服务

[WebMethod, ScriptMethod(UseHttpGet = true, XmlSerializeString = false, ResponseFormat = ResponseFormat.Json)]
    public string Add(int num1, int num2)
    {
        return (num1 + num2).ToString();
    }

1 个答案:

答案 0 :(得分:0)

您应该尝试解决服务上的错误 - 如果WSDL说您应该能够POST一个请求并且您正在传递正确的请求,那么它不应该是错误的,这是服务提供商修复的。他们返回的错误完全可能与您发送无效参数有关,因此请在引用服务提供商之前检查您的请求是否已发现。

他们可以查看他们的错误日志,或者他们的事件查看器,以查找确切的错误消息,出于安全原因,这些消息可能不会公开。

相关问题