JQuery Ajax-Request错误500找不到Web服务方法

时间:2017-01-25 17:22:41

标签: javascript c# jquery ajax web-services

JS:

function showComments(couponId) {
            var jsontxt = JSON.stringify({ couponId });
            $.ajax({
                type: "POST",
                url: "<% =Page.ResolveUrl("~/Admin/UserCoupons.aspx/GetComments") %>",
                data: jsontxt,
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                //async:true,
                success: function (result) {
                    alert("We returned: " + result.d);
                },
                failure: function (response) {
                    alert(response.d);
                }
            });

        }

C#:

[WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string GetComments(string couponId)
        {
            //will return precomipled generated html for display in div
            return "Success";

        }

C#代码位于.cs文件后面的页面代码中 在使用堆栈溢出流之前,我已经解决了这个问题 感谢这里的专家。 但这次还有其他的事情

我在page_load方法中获取调试指针,然后在母版页的页面加载方法中。但调试不会进入GetComments

并获得异常

  

未知的网络方法GetComments。   参数名称:methodName

下面是stackTrace

   at System.Web.Script.Services.WebServiceData.GetMethodData(String methodName)
   at System.Web.Script.Services.RestHandler.CreateHandler(WebServiceData webServiceData, String methodName)
   at System.Web.Script.Services.RestHandler.CreateHandler(HttpContext context)
   at System.Web.Script.Services.RestHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)
   at System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)
   at System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

2 个答案:

答案 0 :(得分:0)

您在ajax中的数据应为 JSON.stringify({couponId:&#39; 123&#39;}) //参数名称&amp;值。

function showComments(couponId) {
            var jsontxt = JSON.stringify({ couponId:'123' });
            $.ajax({
                type: "POST",
                url: "<% =Page.ResolveUrl("~/Admin/UserCoupons.aspx/GetComments") %>",
                data: jsontxt,
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                //async:true,
                success: function (result) {
                    alert("We returned: " + result.d);
                },
                failure: function (response) {
                    alert(response.d);
                }
            });

        }

答案 1 :(得分:0)

经过漫长的谷歌和所有其他人并应用所有可能的解决方案。最后,我找到了解决方案。那是 在〜/ App_start / RouteConfig.cs

编辑文件

替换

settings.AutoRedirectMode = RedirectMode.Permanent;

settings.AutoRedirectMode = RedirectMode.Off;
这解决了我的问题。感谢所有感兴趣并表现出慷慨的人。