web-dev-qa-db-ja.com

コマンドcurlをjavascriptに変換

Curlのコマンドをjavascriptに変換しようとしています。 Googleで検索しましたが、解決策や説明が見つかりません。コマンドcurlはこれです:

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()関数に変換します。私の問題は、コマンドcurlにあるオプションのために関数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) {
       //
    }
15
seal

デフォルトでは、$.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");
 }
});
19
Ahmed_Ali