处理返回excel的Post请求

时间:2015-07-13 09:37:39

标签: post nginx reverse-proxy proxypass

我正在使用ngnix来proxy_pass对应用服务器的请求。我使用以下配置

server {
  listen       80;
  server_name  localhost;
  access_log  /var/log/nginx/localhost.access.log;
  location / {
             proxy_pass http://localhost:9000;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection 'upgrade';
             proxy_set_header Host $host;
             proxy_cache_bypass $http_upgrade;
            }
  location /names.json {
    proxy_pass      http://appserver.com:3000;
  }
  location /names/ {
    proxy_pass      http://appserver.com:3000;
  }
}

现在我有一个格式为http://uiserver.com/hosts/export.xlsx

的POST请求

我正在传递POST的params并从我的Web服务器发出POST请求。现在,当应用服务器以excel的形式返回数据时,浏览器不会以文件形式加载数据,而是在响应中看到加密数据。

我有什么遗失的东西,我应该如何解决这个问题?或者它是应用服务器端的东西。请告诉我。

谢谢

1 个答案:

答案 0 :(得分:0)

浏览器将使用Content-Type标头来了解内容是什么(以及如何处理)。 您的应用程序应发送Content-Type: application/<mimetype of your document>,有关正确的类型,请参阅this question

如果没有它(或者不正确),浏览器可能会尝试将内容显示为文本。