我遇到了一个很大的问题!
我试图用Jquery加载Json文件,但总是失败! 我尝试了很多不同的东西,但对我来说没有任何作用。我也不确定如何真正调试它,出了什么问题!
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready( function() {
var url = "content.json";
var outp = {
low : 0,
high : 99,
name : "Fritz",
rufnummer : "012",
faxnummer : "345",
mobil : "678",
mail : "mail@mail.mail",
};
$('#find').on("click", function(){
var data = $.getJSON( url, function() {
console.log( "success" );
})
.done(function() {
console.log( "second success" );
})
.fail(function() {
console.log( "error" );
})
.always(function() {
console.log( "complete" );
});
console.log(data);
console.log(outp);
console.log("Hi");
data.complete(function() {
console.log( "second complete" );
});
});
});
//});
</script>
</head>
<body>
<p>Postleitszahl:</p>
<input type="number" autocomplete="on" name="inp" id="inp">
<button type="button" id="find">Finden</button>
<p class="output"></p>
</body>
</html>
这也是我的JSON:
{
"low" : 0,
"high" : 99,
"name" : "Fritz",
"rufnummer" : "012",
"faxnummer" : "345",
"mobil" : "678",
"mail" : "mail@mail.mail",
}
答案 0 :(得分:5)
而不是:
var data = $.getJSON( url, function() {...})
尝试:
$.getJSON( url, function(data) {...})
答案 1 :(得分:0)
你可以像Roxoradev
的答案那样做,或者试试这个:
data.complete(function() {
console.log( data );
});
而不是
data.complete(function() {
console.log( "second complete" );
});
<强>解释强>
您的延期现已存储在data
,如果您想要解决,请使用.complete(func)
或.done(func)
来自文档:
jQuery 1.5中的Promise接口还允许jQuery的Ajax方法(包括$ .getJSON())在单个请求上链接多个.done(),. aways()和.fail()回调,甚至分配请求后的这些回调可能已经完成。如果请求已经完成,则立即触发回调。
所以你也可以写.done()