2014-10-09 295 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