我是html和javascript的新手。据我所知,当我按“获取JSON数据”按钮时,下面的代码应该发出警告。但该页面没有给我任何回复。非常感谢任何帮助。< / p>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.getJSON("http://127.0.0.1:5000/2", function(result){
if (result.length == 0){
alert("nothing") ;
}
if (result.length){
alert("success") ;
}
// $("div").append(myObject);
});
});
});
</script>
</head>
<body>
<button>Get JSON data</button>
<div></div>
</body>
</html>
答案 0 :(得分:1)
我怀疑这应该是跨域问题。这就是我要求控制台日志的原因。你有几个选择:
从servlet / backend响应中配置跨域标头。 (例如:如果您使用的是Servlet:)
response.setHeader('Access-Control-Allow-Origin','*');
使用 jsonp 回拨
$.getJSON("http://example.com/something.json?callback=?", function(result){
//response data are now in the result variable
alert(result);
});
URL末尾的“?”告诉jQuery它是一个JSONP 请求而不是JSON。 jQuery注册并调用回调 自动运行。
ex:
$.ajax({
url: surl,
data: {
id: id // data to be sent to server
},
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonpcallback"
});
// Named callback function from the ajax call when event fired.
function jsonpcallback(rtndata) {
// Get the id from the returned JSON string and use it to reference the target jQuery object.
var myid = "#" + rtndata.id;
$(myid).feedback(rtndata.message, {
duration: 4000,
above: true
});
}
希望你能得到一些想法。跟随适合你的..
答案 1 :(得分:0)
用
替换JSON调用$.getJSON("http://127.0.0.1:5000/2", function(result){
if (result.length == 0){
alert("nothing") ;
}
if (result.length){
alert("success") ;
}
// $("div").append(myObject);
}).fail(function( jqxhr, textStatus, error ) {
var err = textStatus + ", " + error;
console.log( "Request Failed: " + err )
});
这样你就可以看出出了什么问题。 javascript看起来不错,我怀疑这是服务器问题。
您也可以尝试从某些随机来源获取JSON,例如http://1882.no/API/business/get/results.php?q=skole&page=0