jQuery AJAX URL Shortener JSON请求不起作用

时间:2010-08-24 12:08:17

标签: jquery json jsonp bit.ly url-shortener

我被卡住了 - 对于我认为简单的事情,我感到非常沮丧:(

Jquery的:

$.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或脚本,相应地更改了API的要求,但没有。我已经尝试了其他缩短网站,但同样的事情不断发生。

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

HELP! :(感谢您浏览。:)

2 个答案:

答案 0 :(得分:1)

jsonp是正确的。

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


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

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

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

然后,您的javascript可以使用json代替jsonp

答案 1 :(得分:0)

这是因为您尝试使用jQuery AJAX调用来发出JSONP请求,但ur.ly API目前不支持JSONP。由于Javascript的same origin policy,使用对其他域的普通JSON调用将无法正常工作。

您将需要创建一个服务器端代理脚本,作为JavaScript和远程服务器的中间人(如上面Ghommey所述),或者使用所做的其他URL缩短API 支持JSONP请求(例如bit.ly)。