我尝试使用这个 jQuery 脚本调用 bit.ly API:
$.get('http://api.bit.ly/shorten?login=bitlyapidemo&apiKey=R_0da49e0a9118ff35f52f629d2d71bf07&version=2.0.1&longUrl=www.wordpress.com', function(data) {
alert(data);
});
但萤火虫说“405 方法不允许”。怎么了?非常感谢。
我尝试使用这个 jQuery 脚本调用 bit.ly API:
$.get('http://api.bit.ly/shorten?login=bitlyapidemo&apiKey=R_0da49e0a9118ff35f52f629d2d71bf07&version=2.0.1&longUrl=www.wordpress.com', function(data) {
alert(data);
});
但萤火虫说“405 方法不允许”。怎么了?非常感谢。
如前所述,标准 AJAX 调用不能跨域工作。只需将 JSONP 与 $.getJSON() 一起使用即可。
以下是如何使用 Bitly API 和 jQuery 获取缩短 URL 的示例:
function get_short_url(long_url, login, api_key, func)
{
$.getJSON(
"http://api.bitly.com/v3/shorten?callback=?",
{
"format": "json",
"apiKey": api_key,
"login": login,
"longUrl": long_url
},
function(response)
{
func(response.data.url);
}
);
}
以下代码可用于获取短 URL:
/*
Sign up for Bitly account at
https://bitly.com/a/sign_up
and upon completion visit
https://bitly.com/a/your_api_key/
to get "login" and "api_key" values
*/
var login = "LOGIN_HERE";
var api_key = "API_KEY_HERE";
var long_url = "http://www.kozlenko.info";
get_short_url(long_url, login, api_key, function(short_url) {
console.log(short_url);
});
您看到 405 错误的原因是您违反了Same Origin Policy,这会阻止从不同的域、子域或协议中检索数据。
URL 无效。
您必须将http://
longUrl 参数放在前面。
编辑
一些澄清:
{ "errorCode": 0, "errorMessage": "", "results": { "www.wordpress.com": { "errorCode": 1206, "errorMessage": "URL you tried to shorten was invalid.", "statusCode": "ERROR" } }, "statusCode": "OK" }
这个:http ://api.bit.ly/shorten?login=bitlyapidemo&apiKey=R_0da49e0a9118ff35f52f629d2d71bf07&version=2.0.1&longUrl=http://www.wordpress.com返回
{ "errorCode": 0, "errorMessage": "", "results": { "http://www.wordpress.com": { "hash": "j1IP3", "shortKeywordUrl": "", "shortUrl": "http://bit.ly/6i1NkN", "userHash": "6i1NkN" } }, "statusCode": "OK" }
他们可能期望 POST 请求而不是 GET。