在 localhost:8000 上运行 django 开发服务器,在 localhost:3000 上运行 nodejs 服务器。我想将 json 导入 nodejs 服务器,但出现此错误:
XMLHttpRequest cannot load http://127.0.0.1:8000/api/presentation/?format=json. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin
这是我第一次涉足跨领域的乐趣,所以我的深度不够。
我已将此添加到 Node (expressjs) 中的路由中。
app.all('/', function(req, res){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.render('index', {
title: '...'
});
});
我错过了什么/做错了什么?
最佳答案
数据提供者需要为跨域请求设置策略(不是客户端,正如您的 expressjs 片段所暗示的那样)。
Someone发布了一个简单的 Django 中间件的要点,负责注入(inject)所需的 header :
Middlware to allow's your django server to respond appropriately to cross domain XHR (postMessage html5 API).
关于django sweetpie 和跨域 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014402/