【问题标题】:Jquery ajax Method is UndefinedJquery ajax 方法未定义
【发布时间】:2018-01-06 23:22:25
【问题描述】:

我正在尝试使用 ajax 将数据传递给服务器。

由于 jquery 有 .ajaxStop 事件,当所有 ajax 方法完成时将调用该事件,我需要将常规 js 代码更改为 jquery,因为它不适用于常规 js。

问题是每次我运行 jquery 代码时,在浏览器控制台中都会出现此错误。

'PassDataToServer' is not defined

C#代码

 [WebMethod]
    public static string PassDataToServer(String id, String clientData)
    {
        if (!dynamicInputs.ContainsKey(id))
            dynamicInputs.Add(id, clientData);
        else
            dynamicInputs[id] = clientData;

        return "complete";
    }

旧的正则 JS

function CallPassDataToServer(id, clientData) {
    PageMethods.PassDataToServer(id, clientData, onTransferComplete, onTransferFailed);
}

jquery 失败方法

function PassInputDataToServer(id, inputData)
{
    alert(document.URL + "/" + PassDataToServer);
    $.ajax({
        type: "POST",
        url: document.URL + "/" + PassDataToServer,
        data: { "id": "'" + id + "'", "clientData": "'" + inputData + "'" },
        contentType: 'application/json; charset=utf-8',
        dataType: "text",
        success: function (result) { transferStatus.push(result); },
        error: function (result) { transferStatus.push("failed"); },
        complete: function (result) { transfersCompleted++; }       
    });
}

【问题讨论】:

  • 看不到错误中指出的PassDataToServer 定义的任何地方
  • 该功能工作正常,但我不知道有一种简单的方法可以等待它们全部完成。它调用它大约 6 次,但到我的回发函数被调用时,只完成了 4 次。当我开始调用 jquery 函数时,我才开始收到未定义的错误。

标签: jquery asp.net ajax asp.net-ajax


【解决方案1】:

需要指定调用方法为字符串

function PassInputDataToServer(id, inputData)
{
    alert(document.URL + "/" + "PassDataToServer"); // <----
    $.ajax({
        type: "POST",
        url: document.URL + "/" + "PassDataToServer",   // <----
        data: { "id":  id, "clientData": inputData},
        contentType: 'application/json; charset=utf-8',
        dataType: "json",
        success: function (result) { transferStatus.push(result); },
        error: function (result) { transferStatus.push("failed"); },
        complete: function (result) { transfersCompleted++; }       
    });
}

【讨论】:

  • 抱歉,您刚刚将数据类型更改为文本吗?大约一分钟前我刚刚编辑过它,它是 json。不幸的是,它仍然不起作用。
  • 好吧,没关系,我现在看到了。它正在回发,但所有 ajax 功能都以失败告终。我会做更多调查。
  • 我没有收到未定义的错误,但它似乎仍然没有调用该方法。有任何想法吗?不过还是谢谢。
  • @LittleRain 更改为数据类型 json 和不同的数据格式。那样有用吗?您检查过网址是否正确?
  • 是的,就是这样。非常感谢人!如果可以的话,我会投票给你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-09
  • 2011-03-24
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多