0

我被困住了——对于我认为很简单的事情来说,这非常令人沮丧:(

查询:

$.ajax({ 
 url: "http://ur.ly/new.json?href=http://www.yahoo.com"), 
 type: "GET",
 dataType: "jsonp",
 success: function(data){
 console.log(data);
}});

我试过这样做,FF给我一个“无效标签”错误,Chrome给了另一个。

当我使用“json”作为数据类型时,我得到一个空返回。

令人沮丧的是,当您在浏览器上尝试该 URL 时,它可以正常工作。来自返回数据的“jsonp”变量的错误显示了我想要的数据,但错误阻止我访问它。

我试过换成 XML 或 Script,相应地改变 API 的要求,但没有。我尝试过其他缩短网站,但同样的事情一直在发生。

还尝试将查询部分移植到数据:,但它也不起作用。

帮助!:( 并感谢您浏览。:)

4

2 回答 2

1

jsonp是正确的。

出于安全原因,任何其他类型都不起作用。


我尝试了您的代码,ur.ly 的结果是纯 json 字符串而不是 jsonp 字符串:

{"code":"X5","href":"http://www.yahoo.com"}

您可能会编写一个小型服务器端脚本来读取这些数据。

然后您的 javascript 可以使用json而不是jsonp.

于 2010-08-24T12:11:11.267 回答
0

这是因为您尝试使用 jQuery AJAX 调用发出 JSONP 请求,但 ur.ly API 当前不支持 JSONP。由于 Javascript 的同源策略,使用普通的 JSON 调用到不同的域是行不通的。

您要么必须创建一个服务器端代理脚本,作为 JavaScript 和远程服务器的中间人(正如 Ghommey 上面所说),要么使用支持 JSONP 请求的不同 URL 缩短 API 例如bit.ly)。

于 2010-08-24T12:41:21.390 回答