以下是我需要使用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调用开始工作。
答案 0 :(得分:1)
只要服务目录位于Web应用程序的根目录,您就可以将网址从“../../Services/ValidationService.asmx/CallConfiguredWebService”更改为“/Services/ValidationService.asmx/CallConfiguredWebService”。你永远不应该使用“../”一个简单的“/”将解决从网站根目录开始的任何网址
答案 1 :(得分:0)
重新部署Web应用程序后,ajax调用开始工作,而不对代码进行任何更改。