Javascript JQuery中的AJAX调用出现错误
我正在附加我正在执行的项目,但它总是转到错误函数 为什么要这样做Javascript JQuery中的AJAX调用出现错误,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,我正在附加我正在执行的项目,但它总是转到错误函数 为什么要这样做 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery UI Autocomplete - Default functionality</title> <link rel="stylesheet" href="jquery-ui.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Autocomplete - Default functionality</title>
<link rel="stylesheet" href="jquery-ui.css">
<script src="jquery-1.10.2.js"></script>
<script src="jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script>
$(function() {
$("#tags").autocomplete({
source: function (request, response) {
$.ajax({
url: "test",
dataType: "json",
success: function(response) {
alert("a");
console.log(response);
},
error: function(response) {
alert("b");
console.log(response);
}
});
}
});
});
</script>
</head>
<body>
<div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags">
</div>
</body>
</html>
Url应该是
“test.json”
,因为您得到的是静态文件。您不向有效的服务器URL发送请求。它必须是您试图从URL获取的实际文件:测试不会返回任何内容,除非在后端您有某种机制提供JSON响应,数据类型:JSON
url中的文件可以是任何内容。json或test.php、test.asp、test.jsp不管是什么情况,您都需要指定一个包含实际json的文件
回答得好,伯吉特·马丁内尔。这是我的第一本能 您可以对后端API进行AJAX调用,它需要返回JSONP格式,而不仅仅是JSON,否则会出现错误。这是由于同一原产地政策: 此讨论可能有助于理解JSONP: 然而,另一种选择是禁用谷歌浏览器的安全性,然后它就会工作。但这不是一个解决方案。您需要使用JSONP格式 因此,最好将JSon文件设置为这样的格式,即JSonP格式
myCallback([{"SubItemID":1,"MainItemID":1,"SubName":"2%","MainName":"Milk"},
{"SubItemID":2,"MainItemID":1,"SubName":"Skim/Fat Free","MainName":"Milk"},
{"SubItemID":3,"MainItemID":2,"SubName":"Chedder","MainName":"Cheese"}]);
希望这能帮助您解决问题您确定指定的
“test”
URL指向有效资源吗?返回的HTTP代码状态是什么?test是带有json响应的有效URL?console.log(response)打印什么?只需将URL更改为test.json(URL:“test.json”)-您需要包含文件扩展名
myCallback([{"SubItemID":1,"MainItemID":1,"SubName":"2%","MainName":"Milk"},
{"SubItemID":2,"MainItemID":1,"SubName":"Skim/Fat Free","MainName":"Milk"},
{"SubItemID":3,"MainItemID":2,"SubName":"Chedder","MainName":"Cheese"}]);