2014-10-09 198 views
13

我試圖將curl中的命令轉換爲javascript。我在谷歌搜索,但我沒有找到解決方案或解釋,可以幫助我。命令捲曲是這樣的:轉換命令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中放入命令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) { 
     // 
    } 

回答

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 2014-10-09 10:27:42