从jQuery客户端代码调用ASMX服务

时间:2011-10-05 14:17:49

标签: jquery web-services

我在本地有一个VS 2010项目,我在本地运行ASMX服务。我创建了另一个VS 2010项目,该项目必须使用本地ASMX服务。出于某种原因,每当我触发服务时,它都会给我500个内部服务错误。两个应用程序都在不同的端口上运行

 $.ajax(

    {
        type: "POST",
        url: "http://localhost:22059/Mobile/HOCWebService.asmx/GetCategories",
        data: "{}",
        dataType: "json",
        contentType:"application/json",
        success: function (response) {

            alert(response); 

        }
    }

    );

2 个答案:

答案 0 :(得分:2)

  

两个应用程序都在不同的端口上运行。

这就是问题所在。您违反了same origin policy restriction。您不能将AJAX请求发送到与包含脚本的页面不同的源(不同的ports =>不同的域)托管的服务。

答案 1 :(得分:0)

请确认您在WEBSERVICE CLASS上方添加了以下代码

[System.Web.Script.Services.ScriptService]

添加代码之后如下所示

[System.Web.Script.Services.ScriptService]
public class WSDataService : System.Web.Services.WebService

上述代码行将允许AJAX CLINET呼叫消费WEBSERVICE。

然后您的客户将开始消费