试图发送来自Express的响应到jQuery-iframe-transport



我正在尝试使用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/