【问题标题】:Error: $.ajax is not a function错误:$.ajax 不是函数
【发布时间】:2023-04-07 16:01:01
【问题描述】:

遇到这样的错误,$ajax 无法正常工作

<script type="text/javascript">   
$(document).ready(function () {
  $("#btnsubmit").click(function () {
    $.ajax({
      type: "POST",
      url: "loginform.aspx/getdataval",
      data: "{'uname':'" + $("#TextBox1").val() + "','passwod':'" + $("#TextBox2").val() + "'}",
      contentType: "application/json;charset=utf-8",
      dataType: "json",
      success: function (msg) {
        alert("welcome");
        AjaxSucceeded(msg);
      },
      error: function (xhr, ajaxOptions, thrownError) {
        alert("what is the problem")
      }

    });
  });
});

function AjaxSucceeded(result) {
  alert(result.d);
  var Emp = result.d;
  $("#output").append('<p>' + Emp.Sname + ' ' + Emp.Sno + '</p>');
}
</script>

$ajax 不是函数为什么?当我运行这个脚本时出现错误,它没有运行,是什么问题?

谢谢

【问题讨论】:

  • 在准备回调执行后,您是否正在导入另一个覆盖$ 的库?您可能能够解决将回调定义为 $(document).ready(function ($) {...}) 的问题(即,使其接受对 jQuery 的引用)。
  • 不,没有任何其他库
  • 对我来说很好:jsfiddle.net/antyrat/ZmYqh
  • 您的整个代码是否在某处可用?可能有诸如$.ajax=、$.ajax: 之类的拼写错误。
  • 如果您不提供更多信息,我们将无法为您提供帮助。您按原样发布的代码确实有效。

标签: javascript jquery asp.net


【解决方案1】:

您可能对数据字符串中的单引号/双引号有疑问,因为 JSON 标准是双引号。
您还可以简化 contentType。
我倾向于通过包含转换器和使用 ajaxSetup 的 ajax 本身来简化我在 asp.net 中对 .d 的使用:(请注意,由于该语法,使用这样的转换器在 jQuery 1.5 forward 中有效。随意重构ajaxSetup 如果您愿意,但我发现它对我有帮助,因为当我有多个 ajax 调用时,我只需执行一次。)

$(document).ready(function() {
    $.ajaxSetup({
        data: "{}",
        dataType: "json",
        type: "POST",
        contentType: "application/json",
        converters: {
            "json jsond": function(msg) {
                return msg.hasOwnProperty('d') ? msg.d : msg;
            }
        },
        error: function(xhr, textStatus, errorThrown) {
            var errorMessage = "Ajax error: " + this.url
                 + " : " + textStatus + " : " + errorThrown 
                 + " : " + xhr.statusText + " : " + xhr.status;
            alert(errorMessage);
            if (xhr.status != "0" || errorThrown != "abort") {
                alert(errorMessage);
            }
        }
    });
    $("#btnsubmit").click(function() {
        var pString = '{"uname":"' 
             + $("#TextBox1").val() + '","passwod":"' 
             + $("#TextBox2").val() + '"}';
        $.ajax({
            url: "loginform.aspx/getdataval",
            data: pString,
            success: function(msg) {
                alert("welcome");
                AjaxSucceeded(msg);
            }
        });
    });
});

// converter gives us the result instead of the .d here
function AjaxSucceeded(result) {
    alert(result);
    var Emp = result;
    $("#output").append('<p>' + Emp.Sname + ' ' + Emp.Sno + '</p>');
}

编辑:从 jQuery 1.9 开始,您应该像这样绑定 ajax 设置:

 $(document).ajaxSetup({..more code

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 2013-09-30
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多