Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调用ASMX时出现Ajax未定义错误_C#_Jquery_Ajax - Fatal编程技术网

C# 调用ASMX时出现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移动到同一解决方案中的一个单独的项目中时,会出现一个ajax错误:

      [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;
    }