jQuery.ajax 不是一个函数 TypeError



我不确定为什么我的代码会出现错误。我做错了什么?

<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
$( document ).ready(function() {
var logResp = $('#food-hygiene');
logResp.ajax({
url: "food-hygiene.html",
async: false,
type: "GET",
dataType: "string"
}).done( function(data) {
alert(data);
})
});
</script>
</head>
<body>
<div class="container-fluid">
<div class="content-wrapper">
<div id="food-hygiene">Loading...</div>
</div>
</div>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
</body>
</html>

更新:正如Satpal所指出的,有两个对jQuery的引用。较低的版本是不支持jQuery的苗条版本。

logResp它包含使用此语句选择的#food-hygiene元素的实例:$('#food-hygiene');

替换此代码:

logResp.ajax({
url: "food-hygiene.html",
async: false,
type: "GET",
dataType: "string"
}).done( function(data) {
alert(data);
})

有了这个:

jQuery
.ajax(
{
url: "food-hygiene.html",
async: false,
type: "GET",
dataType: "string"
}
)
.done(
function(data) {
alert(data);
}
);

我遇到了同样的问题。

只需替换:

'src="https://code.jquery.com/jquery-3.1.1.slim.min.js"'

'src="https://code.jquery.com/jquery-3.1.1.min.js"'

在脚本标签中并将其添加到头部

似乎 jQuery 文件没有正确加载,我已经尝试没有另一个<link>标签,并且代码没有抛出任何错误:

此外,$('#food-hygiene')也没有ajax()$放的方法。

$(document).ready(function() {

$.ajax({
url: "food-hygiene.html",
async: false,
type: "GET",
dataType: "string"
}).done(function(data) {
alert(data);
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<!--<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>-->
</head>
<body>
<div class="container-fluid">
<div class="content-wrapper">
<div id="food-hygiene">Loading...</div>
</div>
</div>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<!--<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
</body>
</html>

  1. 您正在创建一个对象并尝试将其用作错误的ajax前缀

  2. 仅添加一个 jQuery 库jquery-3.2.1.min.jsjquery-3.1.1.slim.min.js

  3. 将脚本代码放在页面上并进行检查。(或者你也可以把它留在那里(

像下面这样:-

<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
</head>
<body>
<div class="container-fluid">
<div class="content-wrapper">
<div id="food-hygiene">Loading...</div>
</div>
</div>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
<script>
$( document ).ready(function() {
var logResp = $('#food-hygiene');
logResp.ajax({
url: "food-hygiene.html",
async: false,
type: "GET",
dataType: "string"
}).done( function(data) {
alert(data);
})
});
</script>
</body>
</html>

最新更新