我正在尝试将curl中的命令转换为
javascript.我在谷歌搜索,但我没有找到可以帮助我的解决方案或解释.命令curl是这样的:
curl https://www.google.com/accounts/ClientLogin --data-urlencode Email=mail@example.com --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"); } });