Javascript中的getJSON

时间:2015-05-27 09:28:00

标签: javascript jquery getjson

我是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>

2 个答案:

答案 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注册并调用回调   自动运行。

  • 使用 $。ajax 启用 CORS jsonp

 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
   });
 }

  • 或者,在服务器端下载并配置“CORS.jar”,这将允许跨域请求。 的 HOW ?

希望你能得到一些想法。跟随适合你的..

答案 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