所以我有点问题。当我要求MooTools发送请求时,它每次都会失败。我似乎无法诊断问题,因为如果我尝试获取返回的标头信息,控制台只给我"Refused to get unsafe header 'Status'"
消息。我唯一能想到的是服务器不允许我访问外部资源,但也许我只是编错了。
这是请求代码:
var finfo = current.textFontData();
var url = 'http://antiradiant.com/clients/TMW/rbwizard/mailer.php?s='+current.size+'&b='+current.box+'&l='+current.lidWood+'&c='+current.cartID+'&f='+finfo.font+'&l1='+finfo.line1+'&l2='+finfo.line2;
console.log(url);
var req = new Request({
url: url,
onSuccess: function() {
console.log('success');
//atc2.send();
},
onFailure: function() {
console.log('failure');
console.log(this.getHeader('Status'));
//atc2.send();
},
onException: function(headerName, value) {
console.log('exception');
console.log(headerName+': '+value);
}
});
req.send();
上的资源rb_wizard.js
(第81-103行)
答案 0 :(得分:2)
Mootools有一个名为Request.JSONP的类,它将帮助解决您的跨域问题。它的Request类的子类,所以你的方法应该工作相同。我相信你需要在结尾调用.post()或.get()而不是发送,但这就是所有应该发生的事情。我不确定你在运行什么版本,但这里是文档链接Mootools Request.JSONP
答案 1 :(得分:1)
当您违反WebKit时,基于cross-domain security model的浏览器(Safari,Chrome等)会出现错误消息"Refused to get unsafe header 'Status'"
。
因此,您粘贴的代码似乎位于antiradiant.com以外的域中,因此(浏览器)不允许在antiradiant.com上请求网站。
答案 2 :(得分:0)
我最终做的只是使用iframe。我真正需要做的就是将数据发送到另一个网站,而不是接收任何网站。