json - Apache 反向代理将 JSON 响应包装在 HTML 中

标签 json apache reverse-proxy mod-proxy mod-proxy-html

如果之前有人问过这个问题(找不到任何类似的问题),或者只是非常明显而我只是个白痴,请提前致歉。

我正在使用 Apache 2.4 反向代理几个内部页面和 Web 应用程序。我已经启用了相当多的代理模块,包括 mod_proxy_html 以根据需要重写 HTML。代理的每个页面或网络应用都在 block 内。

通常这很有效。链接工作,资源加载,因为他们应该等等,等等,等等。但是这些网络应用程序中有一些使用 AJAX 来实现一些不错的用户体验功能,这些 AJAX 请求中的大多数都命中了代理的 JSON 端点。

我的问题是:任何代理的 JSON 响应都包含在

<html><body><p>{ "Example": "Yes" }</html></body></p>

我不知道这些 HTML 标签是从哪里来的,而且我试图摆脱它们的一切都没有奏效。我尝试了 LocationMatch block 并显式设置 ProxyHTMLEnable Off 并删除了替代输出过滤器。

有没有办法明确禁用特定 URL 的响应主体重写/替换?

最佳答案

我遇到了同样的问题。经过两天的测试,我找到了解决方案。

在Location区域你需要评论

#SetOutputFilter  proxy-html

我只有以下几行

< Location /blabla >
    #ProxyHTMLEnable off
    ProxyPassReverse /
    #SetOutputFilter  proxy-html
    ProxyHTMLURLMap  /externalBlaBla/  /blabla/
    ProxyPassReverseCookiePath / /blabla
< /Location >

关于json - Apache 反向代理将 JSON 响应包装在 HTML 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844685/

相关文章:

javascript - 使用 Ajax POST 请求将图像和 JSON 数据发送到服务器?

c# - 更改 WCF Web Api HttpContext 响应

apache - 仅通过 .htaccess 重定向根目录并使用其他规则

python - Bitnami Django Stack 服务器无法识别新项目

apache - 将目录添加到 Apache 服务器

docker - Traefik(+Docker) 根目录和子文件夹分派(dispatch)的路径设置

docker - 如何在 Docker 之外将 NGINX 反向代理到 proxy_pass 到 docker 容器

java - ObjectMapper SetDateFormat() 不起作用

nginx - Spring Boot 和 Nginx 集成

javascript - 如何使用 Gulp 通过 config.json 文件替换 HTML 属性中的值?