nginx add_header não está funcionando

2

Estou usando o nginx-1.7.0 no windows 7. Estou tentando usar o add_header para obter um arquivo json no qual eu more / data / TESTFOLDER.

É assim que meu bloco de localização se parece:

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

Quando eu executo meu site, onde no meu javascript eu tenho uma solicitação jquery ajax para obter arquivos json dessa pasta, o firebug me fornece estas informações:

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

para que você veja que o tipo de conteúdo não mudou como eu gostaria. Eu não tenho add_header em outro lugar no meu arquivo de configuração e o padrão é definido como octet_stream como deveria ser.

Algumas coisas a serem observadas:

  • A solicitação "funciona", ou seja, eu posso acessar o host local / data / TESTFOLDER / do meu navegador
  • mime.types estão incluídos no meu arquivo de configuração
  • mime.types contém o aplicativo / json json;
  • meu log de erros não tem erros sobre isso

Além disso, sou muito novo no nginx e nos servidores da web em geral, então, por favor, faça suas explicações simples de entender. :)

    
por user3820230 09.07.2014 / 16:17

1 resposta

1

add_header não substitui o cabeçalho existente, mas adiciona um novo, possivelmente levando a duplicada que pode ser filtrada quando é suposto ser única e / ou apenas a primeira do seu tipo é lida.

Outra possibilidade é que o código de status HTTP da sua resposta não corresponda à lista definida nos documentos desta diretiva, pois você não usou o parâmetro always . O texto / html que você vê pode ser a página 404 padrão do nginx.

De qualquer forma, o que você deseja usar para sua necessidade é a diretiva default_type :

location /data/TESTFOLDER/ {
    default_type application/json;
    autoindex on;
}
    
por 10.03.2016 / 11:25

Tags