繁体   English   中英

webworker和xmlhttprequest使用导致原始错误

[英]webworker and xmlhttprequest use is causing an origin error

我在使用WebWorkers和XHR尝试使用后台上传系统时遇到了一些问题。

在服务器端,我正在使用python tornado web服务器。 url的处理程序如下所示:

class FileHandler(RequestHandler):

    def put(self,fileid):
        self.set_header('Access-Control-Allow-Origin', '*')
        ...

在客户端我正在使用XHR(因为我试图通过WebWorker实现这一点)。 看起来像

uploadFile = (file,url) ->
    xhr = new XMLHttpRequest()
    xhr.open('PUT',url)
    xhr.onload = (event) ->
         ...
    xhr.send()

如果我在主线程中使用此函数它可以工作,但是如果我在我的WebWorker中使用它,它会失败并出现一个不允许出错的错误,即使它似乎将'Access-Control-Allow-Origin'设置为'*'也应该让它工作。

好吧,我通过在龙卷风代码中进行一些服务器端更改来实现此功能

class FileHandler(RequestHandler):

    def put(self,fileid):
        self.set_header('Access-Control-Allow-Origin', '*')
        ...

    def options(self,fileid):
        self.set_header('Access-Control-Allow-Origin', '*')
        self.set_header('Access-Control-Allow-Methods', 'GET, PUT, OPTIONS')

在与客户端的XHR请求进行协商期间,需要使用选项动词来传递适当的标头信息。 我还需要在实际响应中重新发送标头,否则它仍然会失败。 会对任何进一步解释情况的评论感兴趣,因为我对这个“修复”的理解是不稳定的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM