我正在尝试使用jquery-ifram-transport和nodejs设置一个简单的文件上传,问题是我不断遇到错误的securityError:阻止具有Origin "https://localhost:8081"
的帧,无法访问A帧带有原点" serverurl"的框架。协议,域和端口必须匹配。
这是我的客户端代码
var uploadXhr = $.ajax($scope.nodeSocketUrl + '/upload?tenant=qa',{
data: $(':text', form).serializeArray(),
files: $('#presentationFileUpload'),
type: 'POST',
iframe: true,
processData: false,
context: this
});
在这里,我只是很难让这个插件与可强大的功能一起使用,我希望将请求发送回客户,例如Hey File已上传到这样的内容。
form.on('end',function(){
res.header({'content-type': 'text/html'});
res.send('<html><textarea data-type="application/json">{"ok": true, "message": "Thanks so much"}</textarea></html>');
});
任何知道如何将请求从Express发送到JQuery-Iframe-Transport Ajax请求的人将是一个巨大的帮助。
更新这是我当前的CORS设置
app.all('/*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Credentials', true);
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Authorization');
next();
});
您是否正在使用express?
尝试以下操作:
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
您需要启用CORS标题才能正常工作。
http://enable-cors.org/index.html
编辑:
有时您需要配置浏览器。Local主机的行为与实际领域不同。
以这些设置开始铬:--disable-web-security
在此处阅读更多有关它的信息:
- 在Chrome中禁用相同的起源政策
- http://joshuamcginnis.com/2011/02/28/how-to-disable-same-origin-policy-in-chrome/