将curl查询转换为jQuery.ajax()

时间:2015-04-08 12:25:15

标签: javascript jquery ajax curl coldfusion

我有一个curl命令可以正常工作。它是对返回WDDX的coldfusion服务器的查询:

curl --user 'adminUser:adminPass' 'http://blablabla/app.cfc?method=isSusbscribed&newsletterId=2222&language=en&email=anemal@mail.com'

结果是:

<wddxPacket version='1.0'><header/><data><boolean value='true'/></data></wddxPacket>

这意味着拥有给定电子邮件的用户会收到ID为2222的简报。

现在,我试图在js脚本中使用Ajax编写相同的命令:

我试过这样做:

$.ajax({url:'http://blablabla/app.cfc?method=isSusbscribed&newsletterId=2222&language=en&email=anemal@mail.com'
,username:'adminUser'
,password:'adminPass'})
      .done(function(res){
        jRes=$(res).find('boolean[value]');
        if(jRes.length == 1) inputElem.prop('checked', jRes.attr('value')=='true'); 
      }).always(function(res,text){
        console.log(res);
        console.log(text);
      })
      ;

但它不起作用。

如果用户注册了时事通讯,我的目标是将开关置于ON位置。

可能是查询的语法不正确,我认为问题与身份验证有关。

有人能帮助我吗? 感谢

1 个答案:

答案 0 :(得分:2)

非常确定当您在卷曲请求中--user时,它会使用基本身份验证。因此,您需要在jQuery调用中使用基本身份验证。您还需要Base64编码您的用户名和密码。像这样:

$.ajax({
  url:'...',
  beforeSend: function(xhr) { 
    xhr.setRequestHeader("Authorization", "Basic YWRtaW5Vc2VyOmFkbWluUGFzcw==");
  }
}).done(function(res){
  // handle success...
});