我有一个运行良好的 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/