nginx的add_header不工作

我在Windows 7上使用nginx-1.7.0。我正在尝试使用add_header来获取我驻留在/ data / TESTFOLDER中的json文件。

这是我的位置块看起来像:

location /data/TESTFOLDER/ { add_header 'Content-Type' 'application/json'; autoindex on; } 

当我运行我的网站,在我的JavaScript在哪里我有一个jQuery的Ajax请求从这个文件夹中获取JSON文件,萤火虫给我这个信息:

 ResponseHeaders Connection keep-alive Content-Type text/html Date Wed, 09 Jul 2014 14:01:29 GMT Server nginx/1.7.0 Transfer-Encoding chunked Request Headers Accept application/json Accept-Encoding gzip, deflate Accept-Language en-us,is;q=0.7,en;q=0.3 Content-Type application/json Host localhost Referer http:// local host/index.html User-Agent Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0 X-Requested-With XMLHttpRequest 

所以你看到的内容types没有改变,因为我希望它。 我的configuration文件中没有add_header的其他地方,默认设置为octet_stream。

有几件事要注意:

  • 请求“有效”,也就是说,我可以从我的浏览器访问本地主机/数据/ TESTFOLDER /
  • mime.types包含在我的configuration文件中
  • mime.types包含application / json json;
  • 我的错误日志没有关于这个错误

另外,我对nginx和web服务器一般都很陌生,所以请简单理解你的解释。 🙂

add_header并不会replace现有的头文件,而是添加一个新的头文件,可能会导致重复,当它被认为是唯一的和/或只有第一个types被读取时可能被过滤。

另一种可能性是响应中的HTTP状态代码与本指令文档中定义的列表不匹配,因为您没有使用always参数。 你看到的text / html可能是nginx默认的404页面。

无论如何,你想用你的需要是default_type指令:

 location /data/TESTFOLDER/ { default_type application/json; autoindex on; }