将命令 curl 转换为 javascript

Posted

技术标签:

【中文标题】将命令 curl 转换为 javascript【英文标题】:Convert command curl to javascript 【发布时间】:2014-12-04 03:43:02 【问题描述】:

我正在尝试将 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() 函数。我的问题是我不知道我必须在函数 setHeader 中为命令 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) 
       //
    

【问题讨论】:

【参考方案1】:

默认$.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");
 
);

【讨论】:

以上是关于将命令 curl 转换为 javascript的主要内容,如果未能解决你的问题,请参考以下文章

将 curl 命令转换为 httparty

将 cURL 命令转换为 http put 请求

将 curl 命令转换为 jQuery $.ajax()

将 curl 命令转换为 http 请求接口

将命令 cURL 转换为 HTTP 请求

如何将 curl 命令转换为邮递员