Nginx-won';不提供json响应

Nginx-won';不提供json响应,nginx,Nginx,我已经在服务器上正确运行了一个单页应用程序,跨不同URL提供页面服务: example.com example.com/jsonendpoint 但是当我试图访问一个要返回JSON的端点时,我得到了一个HTML响应。nginx配置如下所示: server { root /home/myapplication/server/public; location / { proxy_pass http://myapplication/; proxy_redirect o

我已经在服务器上正确运行了一个单页应用程序,跨不同URL提供页面服务:

  • example.com
  • example.com/jsonendpoint
但是当我试图访问一个要返回JSON的端点时,我得到了一个HTML响应。nginx配置如下所示:

server {
    root /home/myapplication/server/public;

  location / {
    proxy_pass http://myapplication/;
    proxy_redirect off;
    try_files $uri $uri/ /index.html;
  }

  location /jsonendpoint {
    proxy_pass http://myapplication/;
    default_type application/json;
    proxy_redirect off;
  }
}
如果我注释掉
try_files
行,那么JSON响应工作正常,我仍然可以访问
example.com
上的根URL,但是当我尝试访问
example.com/jsonendpoint
时,nginx返回404

如何修复配置以使这两项功能都能正常工作

编辑

当我从VPS中卷曲服务器时,它位于:

curl -i -H "Accept: application/json" http://localhost:3000/jsonendpoint
我得到一个JSON响应:

Content-Type: application/json; charset=utf-8
当我从本地机器发出相同的curl请求时(这意味着通过nginx),那么响应类型是错误的:

Content-Type: text/html; charset=UTF-8
这排除了后端服务器存在问题的可能性


mime.types
文件确实添加了json mime类型,并且它被nginx包含。我还尝试了强制每个位置块使用响应类型(请参见上面的代码片段)。

检查您的

application/json      json;
content-type: text/html; charset=utf-8
然后尝试使用以下方式查询您的站点:

curl -i -H "Accept: application/json" http://your-site
检查标题
内容类型
,如果应用程序返回json,则应为:

content-type: application/json
如果您得到类似于:

application/json      json;
content-type: text/html; charset=utf-8
检查后端以添加正确的内容类型

如果要强制输入,请尝试以下操作:

location / {
    default_type application/json;
    # ...
}

检查您的中是否有以下内容:

application/json      json;
content-type: text/html; charset=utf-8
然后尝试使用以下方式查询您的站点:

curl -i -H "Accept: application/json" http://your-site
检查标题
内容类型
,如果应用程序返回json,则应为:

content-type: application/json
如果您得到类似于:

application/json      json;
content-type: text/html; charset=utf-8
检查后端以添加正确的内容类型

如果要强制输入,请尝试以下操作:

location / {
    default_type application/json;
    # ...
}

不,不,我已经用一些额外的信息更新了这个问题details@Simpleton你正在传递的代理传递url的输出“内容类型”是什么?不,不,我已经用一些额外的信息更新了这个问题details@Simpleton您正在传递的代理传递url的输出“内容类型”是什么?