我似乎无法使用谷歌的新网址缩短器api来使用jquery的post方法:
$(document).ready(function() {
$.post("https://www.googleapis.com/urlshortener/v1/url", { longUrl: "http://www.google.com/"},
function(data){
console.log("data" + data);
});
$('body').ajaxError(function(e, xhr, settings, exception) {
$(this).text('fail'+e);
console.log(exception);
});
});
所有这些都给了我一个空(数据)响应和一个空(异常)响应。任何想法?
我也试过这个没有成功:
$.ajax({
type: 'POST',
url: "https://www.googleapis.com/urlshortener/v1/url",
data: { longUrl: "http://www.google.com/"},
success: success,
dataType: "jsonp"
});
答案 0 :(得分:2)
我遇到了无法在jQuery上使用Google Shortener API的同样问题,但经过一些研究后,我在JSON.stringify
上找到了一个简单的data
我的最终代码如下:
window.googleShAPI = 'YOUR_KEY';
window.getShortURL = function(url,cb){
$.ajax({
url:'https://www.googleapis.com/urlshortener/v1/url?key='+window.googleShAPI,
type:"POST",
data:JSON.stringify({longUrl:url}),
contentType:"application/json",
dataType:"json",
success: function(data){ cb(data.id); }
});
}
// example of use:
window.getShortURL('http://www.google.com/',function(u){console.log('ShortURL is:'+u);})
答案 1 :(得分:1)
您需要API密钥才能使用此API
此方法需要一个查询参数: 您的API密钥(使用密钥查询参数)。注意:您可以在进行有限数量的呼叫时省略查询参数,例如在测试阶段。
也是JSON的回复
$.post("https://www.googleapis.com/urlshortener/v1/url?key=enter-your-api-key", { longUrl: "http://www.google.com/"},
function(data){
console.log("data" + data);
}, "json");
答案 2 :(得分:0)
我假设您已阅读Google URL Shortener API参考说明,但我在您的代码段中未看到API密钥:
POST https://www.googleapis.com/urlshortener/v1/url?key={key}
答案 3 :(得分:0)
尝试设置contentType,如下所示:
$.ajax({
type: 'POST',
contentType: "application/json"
url: "https://www.googleapis.com/urlshortener/v1/url",
data: { longUrl: "http://www.google.com/"},
success: success,
dataType: "jsonp"
});
答案 4 :(得分:0)
尝试使用getJson方法:
url="https://www.googleapis.com/urlshortener/v1/url";
data = {
key:"your-api-key",
shortUrl:"http://www.google.com"
};
$.getJSON(url, data, function(data, textStatus){
if(data.status=="OK"){
alert(data.longUrl);
}
});
答案 5 :(得分:0)
由于跨域脚本访问限制,您无法使用这些答案中当前描述的任何方法访问Google的网址缩短API。请参阅此处的讨论以获取解决方案:Cross Domain Issue with implementing Google URL shortener API
感谢tawman的回答,但它隐藏在评论中,我一开始并没有看到它。
答案 6 :(得分:0)
最佳解决方案:
<html>
<head>
<title>URL Shortener using Google API. http://goo.gl </title>
<script src="https://apis.google.com/js/client.js" type="text/javascript"> </script>
</head>
<script type="text/javascript">
function load() {
gapi.client.setApiKey('[GOOGLE API KEY]');
gapi.client.load('urlshortener', 'v1', function() {
document.getElementById("result").innerHTML = "";
var Url = "http://onlineinvite.in";
var request = gapi.client.urlshortener.url.insert({
'resource': {
'longUrl': Url
}
});
request.execute(function(response) {
if (response.id != null) {
str = "<b>Long URL:</b>" + Url + "<br>";
str += "<b>Test Short URL:</b> <a href='" + response.id + "'>" + response.id + "</a><br>";
document.getElementById("result").innerHTML = str;
}
else {
alert("Error: creating short url \n" + response.error);
}
});
});
}
window.onload = load;
</script>
<body>
<div id="result"></div>
</body>
</html>
请替换[GOOGLE API KEY]