использование webworker и xmlhttprequest вызывает ошибку источника - PullRequest
0 голосов
/ 06 января 2012

У меня возникают некоторые проблемы при попытке заставить систему фоновой загрузки работать с использованием WebWorkers и XHR.

На стороне сервера я использую веб-сервер python tornado. Обработчик для 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' установлено значение ' * 'должно позволить ему работать.

1 Ответ

2 голосов
/ 06 января 2012

ОК, я получил это, сделав некоторые изменения на стороне сервера в моем коде торнадо

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.Мне также нужно было повторно отправить заголовки в реальном ответе, в противном случае это все равно не удалось.Было бы интересно получить какие-либо комментарии, которые более подробно объясняют ситуацию, поскольку мое понимание этого «исправления» шатко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...