2014-10-09 14 views
13

Sto provando a convertire un comando in curl in javascript. Ho cercato su google ma non trovo una soluzione o una spiegazione che possa aiutarmi. Il ricciolo comando è questo:Converti comando curl in 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 

Con questo voglio convertire il comando per $ .ajax function(). Il mio problema è che non so cosa devo mettere in funzione setHeader per le opzioni presenti in Command Curl.

$.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) { 
     // 
    } 

risposta

16

Per default $.ajax() converte i dati in una stringa di query, se non già una stringa, dato che i dati qui è un oggetto, modificare i dati in una stringa e quindi impostare processData: false, in modo che non viene convertito interrogare stringa.

$.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

grazie funziona :) – seal