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

标签 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);
      })
      ;

但它不起作用。

我的目标是在用户注册时事通讯时将开关置于开启位置。

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

有人可以帮助我吗? 谢谢

最佳答案

很确定当您在 curl 请求中执行 --user 时,它正在使用基本身份验证。所以你需要在你的 jQuery 调用中使用 Basic Authentication。您还需要对您的用户名和密码进行 Base64 编码。像这样:

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

关于javascript - 将 curl 查询转换为 jQuery.ajax(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29514557/

相关文章:

javascript - jQuery .html 与 .text

c# - 在 MVC 4 脚本部分初始化 jQuery DataTable 时隐藏表数据的最佳方法是什么

c# - 显示月份日历模型并与用户交互的更好方法

新附加 HTML 上的 Javascript window.print() 问题

javascript - DART - 单元测试异常

javascript - jQuery UI 自动完成选择项目后触发新事件

javascript - HTML/jQuery 显示和隐藏表格行

java - jackson 将多个对象序列化为一个

JavaScript 代码在我的 Blogger 网站上不起作用

javascript - 在 Bootstrap 2.3.2 中创建全页宽度下拉菜单