Issue
I'm trying to convert this curl command to 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
I want convert this command to an $.ajax()
function. My problem is that I don't know what I have to put in the setHeader
function below for the options present 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) {
// ?
}
Solution
By default $.ajax()
will convert data to a query string, if not already a string, since data here is an object, change the data to a string and then set processData: false
, so that it is not converted to query string.
$.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");
}
});
Answered By - Ahmed_Ali Answer Checked By - Gilberto Lyons (WPSolving Admin)