我有一个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位置。
可能是查询的语法不正确,我认为问题与身份验证有关。
有人能帮助我吗? 感谢
答案 0 :(得分:2)
非常确定当您在卷曲请求中--user
时,它会使用基本身份验证。因此,您需要在jQuery调用中使用基本身份验证。您还需要Base64编码您的用户名和密码。像这样:
$.ajax({
url:'...',
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic YWRtaW5Vc2VyOmFkbWluUGFzcw==");
}
}).done(function(res){
// handle success...
});