我有一个使用localhost工作的应用程序:8888使用龙卷风,这是我设置的标题:
def set_default_headers(self):
self.add_header("Access-Control-Allow-Origin", "*")
self.add_header("Access-Control-Expose-Headers","Accept-Ranges")
self.add_header("Access-Control-Expose-Headers","Content-Encoding")
self.add_header("Access-Control-Expose-Headers"," Content-Length")
self.add_header("Access-Control-Expose-Headers","Content-Range")
localhot上的app:8888需要从locahost获取一个静态文件:80, localhost:80上的nginx服务器如下所示:
server {
listen 80;
server_name localhost;
root /var/www/statics;
passenger_enabled on;
passenger_use_global_queue on;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Origin [http://localhost:8888;]
add_header Access-Control-Expose-Headers Accept-Ranges;
add_header Access-Control-Expose-Headers Content-Encoding;
add_header Access-Control-Expose-Headers Content-Length;
add_header Access-Control-Expose-Headers Content-Range;
add_header accept_ranges bytes;
client_max_body_size 512M;
}
但是浏览器中的错误是持久的:
Refused to get unsafe header "Accept-Ranges"
我试图在看到之后添加上面的所有标题 issue有关的op给出了他的解决方案,使静态pdf服务器返回标题
Access-Control-Allow-Headers: Range
Access-Control-Expose-Headers: Accept-Ranges, Content-Encoding, Content-Length,
我如何在nginx和龙卷风中实现这一目标?
答案 0 :(得分:2)
要使用GET方法获取静态文件,只需将Access-Control-Allow-Origin标头添加到nginx即可。我创建了以下内容,以展示如何从交叉原点访问静态文件。
我创建了一个龙头服务器(),它托管一个html文件。我正在尝试使用由nginx托管的javascript访问静态文件
tornado server.py
import tornado.web
import tornado.ioloop
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render('index.html')
if __name__ == '__main__':
app = tornado.web.Application([
(r'/', MainHandler)
])
app.listen(12303)
tornado.ioloop.IOLoop.instance().start()
的index.html
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<p> Hi </p>
<button id="btn">click</button>
<div id="content"></div>
</body>
<script>
$(document).ready(function(){
$('#btn').click(function(){
$.get('http://localhost:12300/stacktest/abc.html', function(data){
$('#content').append(data);
});
});
});
</script>
</htm>
nginx配置
server{
listen 12300;
server_name localhost;
location /stacktest {
alias D:/stackof_test;
index index.html;
add_header Access-Control-Allow-Origin http://localhost:12303;
}
}
请注意我在Windows上,位置“D:/ stackof_test”包含一个名为“abc.html”的文件,其中包含以下内容
<p>Got the file</p>