使用getJson读取跨域URL

时间:2013-02-03 14:30:50

标签: jquery json getjson

我正在尝试使用getJson读取url。它不会触发成功函数也不会触发错误函数。

var url = "http://demo.dreamacc.com/TextTable.json?callback=?";
            $.ajax({
                type: 'GET',
                url: url,
                async: false,
                jsonpCallback: 'jsonCallback',
                contentType: "application/json",
                dataType: 'jsonp',
                success: function (ooo) {
                    alert('hi');
                    alert(ooo);
                },
                error: function () {
                    alert('w');
                }
            });

但是当我试图阅读这个网址时

http://api.twitter.com/1/statuses/user_timeline/codinghorror.json?callback=?

效果很好

1 个答案:

答案 0 :(得分:4)

端点(您请求的网址http://demo.dreamacc.com/TextTable.json)不支持JSONP返回。

您将无法使用JSONP请求从此网站检索数据。


JSONP的工作原理是指定远程服务器将JSON对象包装在函数调用中(通过callback GET参数定义的函数名)。如果端点不支持此功能并相应地修改其响应,则无法使用JSONP从该站点检索数据。

<强>示例:

Twitter(支持JSONP): [Normal JSON | JSONP]

demo.dreamacc(不支持JSONP): [Normal JSON | JSONP that doesn't work]

如您所见,demo.dreamacc.com端点不会在函数调用中包装响应。