2014-10-09 6 views
13

Я пытаюсь преобразовать команду в curl в javascript. Я искал в google, но я не нашел решения или объяснения, которые могут мне помочь. Команда curl такова:Преобразование командной строки в javascript

curl https://www.google.com/accounts/ClientLogin 
--data-urlencode [email protected] 
--data-urlencode Passwd=******* 
-d accountType=GOOGLE 
-d source=Google-cURL-Example 
-d service=lh2 

С этим я хочу преобразовать команду в функцию $ .ajax(). Моя проблема в том, что я не знаю, что мне нужно включить в функцию setHeader для параметров, присутствующих в командной строке.

$.ajax({ 
      url: "https://www.google.com/accounts/ClientLogin", 
      type: "GET", 

     success: function(data) { alert('hello!' + data); }, 
     error: function(html) { alert(html); }, 
     beforeSend: setHeader 
    }); 


    function setHeader(xhr) { 
     // 
    } 

ответ

16

По умолчанию $.ajax() преобразует данные в строку запроса, если не является строкой, так как данные здесь является объект, изменить данные в строку, а затем установить processData: false, так что он не преобразуется в запрос строка.

$.ajax({ 
url: "https://www.google.com/accounts/ClientLogin", 
beforeSend: function(xhr) { 
    xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password")); 
}, 
type: 'POST', 
dataType: 'json', 
contentType: 'application/json', 
processData: false, 
data: '{"foo":"bar"}', 
success: function (data) { 
    alert(JSON.stringify(data)); 
}, 
    error: function(){ 
    alert("Cannot get data"); 
} 
}); 
+0

спасибо, что это работает :) – seal

Смежные вопросы