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