为什么我不能使用jQuery的$ .get函数从JavaScript调用bit.ly API?

Ren*_*hya 0 javascript api jquery bit.ly

我试图使用这个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);
});
Run Code Online (Sandbox Code Playgroud)

但是firebug说"405方法不允许".怎么了?非常感谢.

Mak*_*nko 6

如前所述,标准的AJAX调用不适用于跨域.只需使用带有$ .getJSON()的JSONP.

以下是如何使用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);
        }
    );
}
Run Code Online (Sandbox Code Playgroud)

以下代码可用于获取简短的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);
});
Run Code Online (Sandbox Code Playgroud)