2015-03-20 4 views
4

Я пытаюсь укоротить URL с помощью Goo.gl URL Shortener API библиотеку с открытым исходным кодом (qwest.js). Однако я успешно ее использовал с помощью jquery, но он дал мне ошибку «Этот API не поддерживает синтаксический анализ входных форматов». когда это делается с использованием qwest. быть очень рекомендуется бызапрос после AJAX с помощью qwest.js для Goo.gl URL Shortener API

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 
        }); 

любая помощь:

Мой код с JQuery.

ответ

5

Автор Qwest здесь;)

Как указано в документации: the default Content-Type header is application/x-www-form-urlencoded for post and xhr2 data types, with a POST request.

Но служба Google Shortener не принимает его. Я предполагаю, что он хочет ввести тип ввода JSON. Затем вы должны установить опцию dataType qwest на json. Кроме того, ваш responseType недействителен и не соответствует документам. Обычно вам не нужно устанавливать его, если Google отвечает на запрос с допустимым заголовком Content-Type. Вот хороший код:

qwest.post('https://www.googleapis.com/urlshortener/v1/url?key=479dfb502221d2b4c4a0433c600e16ba5dc0df4e&', {longUrl: longURL}, {dataType:'json'})

В случае, когда Google не отправляет признанную Content-Type, просто установите параметр responseType в json тоже.

+0

привет там! спасибо за {dataType: 'json'}. это сработало. Я также заметил, что использовал неправильный ключ (другая вещь) хороший плагин –

+1

Спасибо! Рад, что вы исправили свою проблему – pyrsmk