Rob*_*b B 9 django json node.js express
在localhost:8000上运行django dev服务器,在localhost:3000上运行nodejs服务器.我想将json导入nodejs服务器,但我收到此错误:
XMLHttpRequest无法加载 http://127.0.0.1:8000/api/presentation/?format=json.Access-Control-Allow-Origin不允许使用origin http:// localhost:3000
这是我第一次涉足跨领域的乐趣,所以我很想走出我的深度.
我已将此添加到节点(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: '...'
});
});
Run Code Online (Sandbox Code Playgroud)
我错过了什么/做错了什么?
mik*_*iku 10
数据提供者需要为跨域请求设置策略(而不是客户端,正如您的快递片段所示).
有人发布了一个带有简单Django中间件的要点,负责注入所需的头文件:
允许您的django服务器适当地响应跨域XHR(postMessage html5 API)的Middlware.
https://gist.github.com/426829 - 此片段非常有用,但是使用骨干到django服务器进行POST时,我必须根据请求匹配Access-Control-Request-Headers标头,并在响应时使用Access-Control-Allow-Headers.
咖啡:
auth = (xhr) ->
xhr['xhrFields']= {withCredentials: true}
xhr.setRequestHeader('Access-Control-Allow-Credentials', 'true' )
xhr.header('Access-Control-Allow-Origin', "*")
xhr.header('Access-Control-Allow-Methods', 'GET,POST,PUT,HEAD,DELETE,OPTIONS')
xhr.header('Access-Control-Allow-Headers', 'Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control')
Run Code Online (Sandbox Code Playgroud)
python:https://gist.github.com/426829有一个额外的行
def process_request(self, request):
if 'HTTP_ACCESS_CONTROL_REQUEST_METHOD' in request.META:
response = http.HttpResponse()
response['Access-Control-Allow-Origin'] = XS_SHARING_ALLOWED_ORIGINS
response['Access-Control-Allow-Methods'] = ",".join( XS_SHARING_ALLOWED_METHODS )
response['Access-Control-Allow-Headers'] = "Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control"
return response
return None
Run Code Online (Sandbox Code Playgroud)
希望这很有用!
归档时间: |
|
查看次数: |
5934 次 |
最近记录: |