在将多个args作为参数传递给Web方法时,会抛出“No webservice found at”消息

时间:2013-11-05 05:29:08

标签: asp.net ajax json jquery webmethod

以下是我需要使用ajax访问的Web方法:

 [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string CallConfiguredWebService(String projectID,String workType,String Page,String Action,String webServiceName,Object[] arguments)
        {}

我尝试使用以下代码从脚本访问它。

var args = [2];
            args[0] = "Hai";
            args[1] = "Saranya!!";

            $.ajax({
                url: "../../Services/ValidationService.asmx/CallConfiguredWebService?",
                method: "POST",
                data: JSON.stringify({ projectID: '302',workType: 'LFAT',Page: 'Create', Action: 'Create', webServiceName: 'WebService195174',arguments: args}),
                dataType: 'json',
                contentType: 'application/json',
                success: fnsuccesscallback,
                error: fnerrorcallback
            });

我收到以下错误:

500 - Internal server error No service found at /Services/ValidationService.asmx

我很确定网址是正确的。

我从类似的帖子中了解到,这可能是因为ajax调用中的参数不匹配。

我无法理清代码中的确切错误。

也尝试使用JSON.stringify

请帮助您的专业知识。

更新

重新部署Web应用程序后,ajax调用开始工作。

2 个答案:

答案 0 :(得分:1)

只要服务目录位于Web应用程序的根目录,您就可以将网址从“../../Services/ValidationService.asmx/CallConfiguredWebService”更改为“/Services/ValidationService.asmx/CallConfiguredWebService”。你永远不应该使用“../”一个简单的“/”将解决从网站根目录开始的任何网址

答案 1 :(得分:0)

重新部署Web应用程序后,ajax调用开始工作,而不对代码进行任何更改。