【问题标题】:Apache reverse proxy wraps JSON response in HTMLApache 反向代理将 JSON 响应包装在 HTML 中
【发布时间】:2015-10-28 22:45:01
【问题描述】:

如果以前有人问过这个问题(找不到类似的问题),或者只是费力地明显而我只是问这个问题,请提前道歉。

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

通常这很好用。链接工作,资源加载,他们应该等等等等。但是其中一些 Web 应用程序使用 AJAX 来实现一些不错的 UX 功能,这些 AJAX 请求中的大多数都会访问代理的 JSON 端点。

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

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

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

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

【问题讨论】:

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


【解决方案1】:

通过注释掉 SetOutputFilter 代理-html 您只是禁用了链接的重写,因此 proxy_html 什么都不做。

【讨论】:

    【解决方案2】:

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

    在Location区域你需要评论

    #SetOutputFilter  proxy-html
    

    我只有以下几行

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

    【讨论】:

    • 这有点难看。也许用代码块格式化?
    【解决方案3】:

    这似乎是https://bahumbug.wordpress.com/2006/10/12/mod_proxy_html-revisited/ 讨论的问题。

    对于现代版本的软件(自 2011 年 mod_proxy_html 移至 apache.org 之前的某个时间),推荐的修复方法是 xml2StartParse 指令。

    话虽如此,如果 ProxyHTMLEnable Off 没有修复它(在服务器重新启动后),您还有还有其他与配置指令范围相关的问题。

    附:为什么我可以使用 Facebook 的 Google 在这里“注册”,而不是使用 OpenID? Google 和 Facebook 付给你多少钱来敲诈我?

    【讨论】:

      猜你喜欢
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多