2013-02-03 40 views
0

我正在尝试使用getJson读取网址。它既不会触发成功功能,也不会触发错误。使用getJson读取跨网域网址

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=? 

它工作得很好

回答

4

端点(您请求的URL,http://demo.dreamacc.com/TextTable.json)不支持JSONP的回报。

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


JSONP作品通过指定到远程服务器来包装(经由callback GET参数定义的函数名)函数调用中的JSON对象。如果端点不支持此操作并正确修改其响应,则无法使用JSONP从该站点检索数据。

实例:

推特(支持JSONP): [Normal JSON | JSONP]

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

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

+0

可以将IIS配置为支持JSONP返回吗? –

+0

这不是IIS。你必须用代码处理这种情况。根据用于提供数据的技术(正常的ASP.NET工作流,MVC2,WCF,PHP),您必须对该代码进行一些特定的修改才能支持JSONP返回。 –

+0

你能给我举个例子吗? –