В статье MDN в директиве worker-src
Content-Security-Policy
говорится, что с помощью этой директивы можно указывать разрешенные источники для работников (в Chrome> 59 и Firefox> 58)..
Так что, если я устанавливаю заголовок Content-Security-Policy: worker-src foo.com
, почему я не могу сделать, например,
new Worker('https://foo.com/worker.js')
из bar.com
без получения ошибки в Chrome 69 и Firefox 62?
Вот пример во Flask:
app.py (на bar.com)
from flask import Flask, make_response, render_template
app = Flask(__name__)
@app.route('/', methods=['GET'])
def index():
r = make_response(render_template('index.html'))
r.headers.set('Content-Security-Policy', "worker-src foo.com")
return r
index.html
<code><!doctype html>
<html>
<body>
<h1>Hello Service Worker</h1>
<pre id="remote-worker">
var remoteWorker = new Worker ('
https://foo.com/worker.js') var elRemoteWorker = document.getElementById (' remote-worker ') remoteWorker.onmessage = function (e) {elRemoteWorker.textContent = e.data;};
worker.js (на foo.com)
postMessage('Hello from the remote worker!');
Я хотел бы увидетьпроверяемый рабочий пример или очень веская причина, почему это не должно работать (из спецификации W3C не понятно, почему это не должно).