【问题标题】:Ajax Call can't find webmethodAjax 调用找不到 web 方法
【发布时间】:2014-09-14 16:56:21
【问题描述】:

我有一个 dnn 模块,我正在尝试在页面中进行 ajax 调用。 我的客户代码是:

$.ajax({
        type: "POST",
        url: "/DesktopModules/DMUI/Controls/Project/ProjectDrillingMapsView.ascx/GetMarkerList",
        dataType: "json"
    })
    .done(function (data) {
        var list = data;
        $.each(list, function (index, item) {
            alert(item);
     });
    })
    .fail(function (xhr, textstatus, errorthrown) {
     alert('Error:' + errorthrown + ', textstatus:' + textstatus);
    });

服务器端我有这个:

[WebMethod]
        public string GetMarkerList()
        {
            string output = null;
            List<Marker> markerList = new List<Marker>();
            //My main query where I get a list of Objects
            Expression<Func<DomainModel.Drilling, bool>> criteria = null;
            criteria = (d => d.ProjectId == this.SelectedProjectId && d.XCoordinate != 0 && d.YCoordinate != 0);
            _dpList = _drillingSrv.GetDrillingList(criteria, d => d.DrillingCode);

            foreach (DomainModel.Drilling dr in _dpList)
            {
                Marker marker = new Marker();
                marker.latitude = dr.GMapsLatitude.Value;
                marker.longitude = dr.GMapsLongitude.Value;
                marker.code = dr.DrillingCode;
                marker.depth = dr.Depth.Value;
                markerList.Add(marker);
            }
            JavaScriptSerializer jss = new JavaScriptSerializer();
            output = jss.Serialize(markerList);
            return output;
        }

起初我收到内部服务器错误 500。 然后我进入了我的 web.config 并做到了:https://stackoverflow.com/a/2169847/1737287

现在我收到了 Not Found 错误 404。 我很好奇我可能做错了什么......

【问题讨论】:

  • 您可能需要将该 Ajax 调用的路径添加到 DNN 的 URL 处理规则中,以使其忽略该 URL 并让它让 .NET 处理请求。
  • @ChrisHammond 你能链接到一些关于如何做到这一点的文档吗?我最终做了一个解决方法。我根本没有使用 ajax 调用。我用 runat="server" 创建了一个隐藏的 div,在预渲染时我调用 GetMarkerList 将输出写入该 div。它得到了相同的结果,我“躲过了”ajax 调用问题。但我还是想知道怎么了……

标签: jquery .net ajax dotnetnuke


【解决方案1】:

“404 或 Not Found 错误消息是一个 HTTP 标准响应代码,表明客户端能够与给定服务器通信,但服务器找不到请求的内容。”

在 ajax 调用中提供完整的 URL。

【讨论】:

    猜你喜欢
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多