Могу ли я загрузить скрипт веб-работника с абсолютного URL? - PullRequest
3 голосов
/ 11 октября 2009

Мне не удалось заставить что-то подобное работать:

var myWorker = new Worker("http://example.com/js/worker.js");

В моей консоли Firebug появляется сообщение об ошибке:

Не удалось загрузить скрипт: http://example.com/js/worker.js (nsresult = 0x805303f4)

Каждый пример использования веб-работника, который я видел, загружает скрипт по относительному пути. Я попробовал что-то вроде этого, и все работает отлично:

var myWorker = new Worker("worker.js");

Но что, если мне нужно загрузить рабочий скрипт, который находится не в относительном месте? Я много гуглил и не видел нигде этой проблемы.

Я должен добавить, что я пытаюсь сделать это в Firefox 3.5.

Ответы [ 3 ]

9 голосов
/ 11 октября 2009

Для тех, кто не знает, вот спецификация для Web Worker: http://www.whatwg.org/specs/web-workers/current-work/

И пост Джона Резига: http://ejohn.org/blog/web-workers/

Обычно Javascript не может получить доступ ни к чему, кроме URL-адреса, из которого получен файл Javascript.

Я полагаю, что это то, что означает эта часть спецификации, с: http://www.w3.org/TR/workers/

4.2 Base URLs and origins of workers

Both the origin and effective script origin of scripts running in workers are the origin of the absolute URL given in that the worker's location attribute represents.

В этом посте говорится о том, какую ошибку следует выдать в вашей ситуации: http://canvex.lazyilluminati.com/misc/cgi/issues.cgi/message/%3Cop.u0ppu4lpidj3kv@zcorpandell.linkoping.osa%3E

3 голосов
/ 11 октября 2009

В соответствии с черновой спецификацией Web Worker работники должны размещаться в том же домене, что и «первый сценарий» , то есть сценарий, который создает работника. URL первого сценария - это то, с чем разрешается рабочий URL.

0 голосов
/ 09 августа 2013

Не говоря уже о ...

Практически в любое время, когда у вас есть Политика ограничения перекрестного происхождения, нет никакой противоположности файловой системе (file: //path/to/file.ext). Это означает, что файловый протокол запускает обработку для этой политики.

Это относится и к "грязным изображениям" в Canvas API.

Надеюсь, это поможет =]

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