为什么我会得到TypeError:$ .ajax在我发出Ajax请求时不是函数?

时间:2017-11-15 15:25:35

标签: javascript html ajax

我正在构建一个应用程序,当我向服务器发出Ajax请求时,我收到以下错误:

  

TypeError:$ .ajax不是函数

我在网上查了一下,特别是在Stackoverflow上,发现了很多人问我们同样的问题,但没有一个接受的答案解决了我的问题:

  • 我的HTML
  • 中包含瘦身版jQuery
  • 我在之前包含了jQuery的源文件,其中包含了包含我的函数的javascript
  • 我认为在括号中没有错误,就像在一些问题中一样

这就是我包含jQuery的方式:

<script src="./src/jquery-3.2.1.js"> type="text/javascript"</script>

为了清楚起见,我附上了部分代码:

function verifyUsername(success, error) {
  console.log("start check complete");
  $.ajax({
    type: "POST",
    url: '/username',
    contentType: 'application/json',
    data: JSON.stringify({
      username: document.getElementById("username").value
    }),
    done: /*success*/ alert("OK"),
    fail: /*error*/ alert("NO")
  });
}

function verifyBirthPlace(success, error) {
  console.log("pl check complete");
  $.ajax({
    type: "POST",
    url: '/birthplace',
    contentType: 'application/json',
    data: JSON.stringify({
      birthplace_provincia: document.getElementById("birthProvince").value,
      birthplace: document.getElementById("birthTown").value
    }),
    done: success,
    fail: error
  });
}

function checkRegistration() {

  verifyUsername(
    verifyBirthPlace(
      function() {

        if (checkPwdStrenght() == false || comparePwds() == false || checkDate() == false || checkTaxCode() == false) {
          console.log("f")
          return false;
        } else {
          console.log("t")
          return true;
        }
      },
      function(data) {
        console.log("error from place" + data);
      })

    ,
    function(data) {
      console.log("ERROR from user" + data);
    });
}

现在我只有控制台日志而不是函数的真实行为,因为我仍然遇到了Ajax错误。在HTML中单击时调用checkRegistration()

<button class="btn btn-primary" id="subSignUp" onclick="checkRegistration()">Submit</button>

任何想法?

1 个答案:

答案 0 :(得分:-3)

由于某种原因,该函数需要自我调用。那就是:

(function($) {
    $.ajax(/* etc. */)
})(jQuery);