【发布时间】:2017-08-21 04:43:19
【问题描述】:
我厌倦了所有浏览器中的以下问题
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://vid-129002.hls.chinanetcenter.broadcastapp.agoraio.cn/live/pub421490684319281/playlist.m3u8. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing)
我在 node js 之上使用了带有 express 的 Reactjs。在这里,我尝试从 Agora 服务器播放实时流视频,但它没有播放。当我检查控制台时显示上述错误。我在 chrome 上尝试了一些 Cors 插件,它运行良好。 我们如何通过直接在 express-react 环境中添加此标头来解决此问题?
从一些教程中我添加了以下内容来解决它:
var config = {
entry: APP_DIR + '/index.jsx',
headers: {
"Access-Control-Allow-Origin": "http://localhost:3000",
"Access-Control-Allow-Credentials": "true",
"Access-Control-Allow-Headers": "Content-Type, Authorization, x-id,
Content-Length, X-Requested-With",
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS"
},
我的 server.js 文件:
var path = require('path');
var webpack = require('webpack');
var express = require('express');
var config = require('./webpack.config');
var app = express();
var compiler = webpack(config);
app.use(require('webpack-dev-middleware')(compiler, {
publicPath: config.output.publicPath
}));
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost:3000");
res.header("Access-Control-Allow-Credentials", "true");
res.header("Access-Control-Allow-Headers", "Origin,Content-Type, Authorization, x-id, Content-Length, X-Requested-With");
res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
next();
});
app.use(require('webpack-hot-middleware')(compiler));
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, 'index.html'));
});
app.listen(3000, function(err) {
if (err) {
return console.error(err);
}
console.log('Listening at http://localhost:3000/');
});
但还是不行。
你能建议我解决这个问题吗?
【问题讨论】:
-
How to allow CORS?的可能重复
标签: node.js reactjs express cors