微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – AJAX发布请求使用qwest.js goo.gl url shortener api

我正在尝试使用goo.gl URL Shortener API缩短URL,这是一个开源库(qwest.js).我已经使用jquery成功实现了它,但它给了我错误“这个API不支持解析表单编码的输入.”当使用qwest完成时.

我的代码用jquery:

var longURL = "http://www.google.com/";
 $.ajax({
        url: 'https://www.googleapis.com/urlshortener/v1/url?key=AIzaSyANFw1rVq_vnIzT4vVOwIw3fF1qHXV7Mjw',
        type: 'POST',
        contentType: 'application/json; charset=utf-8', 
        data: '{ longUrl:"'+ longURL+'"}',         
        success: function(response) {
          console.log(response)
        }
 })
.done(function(res) {
    console.log("success"); 
})
.fail(function() {
    console.log("error");
})
.always(function() {
    console.log("complete");
});

和qwest.js的非工作代码

var longURL = "http://www.google.com/"    
qwest.post('https://www.googleapis.com/urlshortener/v1/url?key=479dfb502221d2b4c4a0433c600e16ba5dc0df4e&',
    {longUrl: longURL}, 
    {responseType:'application/json; charset=utf-8'})
                    .then(function(response) {
                        // Make some useful actions
                    })
                    .catch(function(e, url) {
                        // Process the error
                    });

强烈建议任何帮助.

解决方法:

qwest的作者在这里;)

如文档中所述:认的Content-Type标头是针对post和xhr2数据类型的application / x-www-form-urlencoded,带有POST请求.

但Google Shortener服务不接受它.我假设它想要一个JSON输入类型.然后你应该将qwest的dataType选项设置为json.此外,您的responseType选项无效,并且不遵循文档.通常情况下,如果Google使用有效的Content-Type标头回复请求,则无需进行设置.这是好的代码

qwest.post( ‘https://www.googleapis.com/urlshortener/v1/url?key=479dfb502221d2b4c4a0433c600e16ba5dc0df4e\u0026amp;’,
    {longUrl:longURL},
    {数据类型: ‘JSON’})

在Google未发送已识别的Content-Type的情况下,只需将responseType选项设置为json即可.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐