我正在尝试将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@H_404_3@
有了这个,我想将命令转换为$.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) { // }@H_404_3@
解决方法
默认情况下,$.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");
- }
- });@H_404_3@