我被卡住了 - 对于我认为简单的事情,我感到非常沮丧:(
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! :(感谢您浏览。:)
答案 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)。