C# 调用ASMX时出现Ajax未定义错误
当我在一个项目中尝试这一点时,效果很好。 但是,当我将webmethod移动到同一解决方案中的一个单独的项目中时,会出现一个ajax错误:C# 调用ASMX时出现Ajax未定义错误,c#,jquery,ajax,C#,Jquery,Ajax,当我在一个项目中尝试这一点时,效果很好。 但是,当我将webmethod移动到同一解决方案中的一个单独的项目中时,会出现一个ajax错误: [WebMethod()] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public static string Test(string message) { return message; } Webmethod区分大小写。在您的代
[WebMethod()]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string Test(string message)
{
return message;
}
Webmethod区分大小写。在您的代码中,函数是公共静态字符串Teststring参数消息中的消息是小写字母,您必须传递数据。消息M是大写字母,因此方法无法在代码端找到函数 所以,如果您像下面这样更改代码,您的代码将运行良好
Error in: http://localhost/Test/MyWebService/Test.asmx/Test
error: undefined
type: ajaxError
readystate: 4
status: 500
当我将webmethod移动到同一解决方案中的单独项目中时
您是否将其移动到web服务项目中并尝试在web项目中使用,如果是这种情况,则会由于跨站点脚本限制而发生此错误。如果仍然需要将它们放在单独的项目中,则必须使用jsonp并返回jsonp友好的响应
你可以找到关于JSONP+ASMX@的更多信息。你的ASMX文件中有这个标题[System.Web.Script.Services.ScriptService]吗。我可能在帖子中更改了它,以便让大家了解我的观点。这个例子很好用,当我把它移到ASMX服务时失败了。是的,我尝试了这个方法,我会再次研究它。或者我可能只是转向WCF,我不敢相信这个简单的任务这么难实现。不,我去掉了它,因为这会阻止jQuery执行ajax请求。实际上,这是用来让脚本了解那些现有方法的。所以请添加它并尝试。
Error in: http://localhost/Test/MyWebService/Test.asmx/Test
error: undefined
type: ajaxError
readystate: 4
status: 500
[WebMethod()]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string Test(string Message)
{
return Message;
}