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

Convert a curl query to jQuery.ajax()

本文关键字:ajax jQuery curl 查询 转换      更新时间:2023-09-26

我有一个curl命令,可以很好地工作。这是对coldfusion服务器的查询,返回WDDX:

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位置。

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

有人能帮我吗?感谢

很确定,当您在curl请求中执行--user时,它使用的是基本身份验证。因此,您需要在jQuery调用中使用基本身份验证。您还需要对您的用户名和密码进行Base64编码。类似这样的东西:

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