XMLHttpRequest和Web Workers访问控制源
XMLHttpRequest and Web Workers Access-Control-Origin
我正在处理一些访问控制原点问题,当使用webworkers制作XMLHttpRequest。
这个问题很容易在main.js中重现:
var worker = new Worker('js/createSimplePage.js');
worker.onmessage = function () {
console.log('message recieved');
};
和js/createSimplePage.js:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
console.log(xmlhttp.responseText);
}
};
xmlhttp.open("GET", "http://search.twitter.com/search.json?q=balling&rpp=20&callback=", true);
xmlhttp.setRequestHeader('Content-Type', 'text/plain');
xmlhttp.send();
如果我在index.html的头文件中包含createSimplePage.js,它会运行良好,并从twitter API打印正确的响应。然而,如果我只加载main.js,让它尝试加载createsimplpage .js作为一个web工作者,然后我收到错误:
XMLHttpRequest cannot load http://search.twitter.com/search.json?q=balling&rpp=20&callback=.
Origin file:// is not allowed by Access-Control-Allow-Origin.
在SimpleHTTPServer上托管文件时也会出现类似的错误,但错误是
"Origin http://127.0.0.1:8000 is not allowed by Access-Countrol-Allow-Origin."
我不明白为什么加载它作为一个网络工作者会破坏它,所以它不能访问API
我不认为网络工作者具有与浏览器相同的安全级别。也许你可以确保你的脚本返回允许所有起源头:
header("Access-Control-Allow-Origin: *");
,最好删除自定义标题:
xmlhttp.setRequestHeader('Content-Type', 'text/plain');
这个网站有更多的信息:http://enable-cors.org/
相关文章:
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- CORS:否'访问控制允许来源'header-但是php设置头文件
- "访问控制允许起源”;通过javascript从http页面调用同一网站的httpsurl时出现问题
- CORS:访问控制允许原点不等于提供的原点
- 飞行前响应中的访问控制允许标头不允许Angularjs请求标头字段访问控制允许标题
- django没有访问控制允许删除原始标头
- HTML5 Canvas访问控制允许原始错误
- Android、iOS和Windowsphone的PHP访问控制
- 访问控制台中的匿名函数
- 访问控制允许标头不允许X-Requested-Wise
- 我如何设置HTTP头“;访问控制允许起源”;用于来自thttpd web服务器的HTTP响应
- Ajax—“;访问控制允许起源”;错误
- XMLHttpRequest无法加载url Origin访问控制允许Origin不允许null
- 访问控制允许来源,即使在同一域上
- jQuery 表单插件:XMLHttpRequest 无法加载 http://www...没有“访问控制允许来源”
- Javascript 受客户端和访问控制允许源的限制
- 访问控制允许方法不允许删除
- 即使在服务器将访问控制允许原点设置为“*”之后,也会收到javascript错误
- AngularJS 没有“访问控制允许来源”标头
- XMLHttpRequest和Web Workers访问控制源