getJSON回调没有执行

时间:2015-02-06 20:53:04

标签: javascript jquery json getjson

我需要做一个跨域请求,我遇到了getJSON问题。

$.getJSON("http://usr:pwd@10.0.1.xx/cgi-bin/remote/request.cgi?m=json&r=grp&fn=getvalue&alias=1/3/51&callback=?",
        function(result) {
            alert('hi');
        });

回调不会触发,即我没有收到警报。如果我在浏览器窗口中粘贴http://链接,我会得到所需的结果。这是一个简单的数字,在这种情况下是2。我也可以将请求设置为xml,在这种情况下,浏览器窗口中的结果为<value>2</value>。如果有人能告诉我,我的getJSON有什么问题会很棒。

非常感谢和最好的问候

2 个答案:

答案 0 :(得分:1)

您的JSON可能存在问题。这取自文档。

  

重要提示:从jQuery 1.4开始,如果JSON文件包含语法错误,   请求通常会无声地失败。避免经常手工编辑   因此JSON数据。 JSON是一种数据交换格式   语法规则比JavaScript的对象更严格   字面符号。例如,所有以JSON表示的字符串,   无论是属性还是价值,都必须附上   双引号。有关JSON格式的详细信息,请参阅http://json.org/

源:

http://api.jquery.com/jquery.getjson/

使用$.ajax

更多地控制错误处理

您可以在http://jsonlint.com/

查看您的JSON

答案 1 :(得分:0)

您尝试呼叫的远程端点似乎不支持JSONP或CORS。这可以在浏览器的控制台输出中看到,也可以直接粘贴网址并将&callback=?参数替换为&callback=somevalue

为了能够进行跨域AJAX调用,远程端点必须支持CORS或JSONP。如果您希望能够使用AJAX使用它们,您应该联系此端点的作者以启用其中一个。