Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache反向代理将JSON响应包装为HTML格式_Json_Apache_Reverse Proxy_Mod Proxy_Mod Proxy Html - Fatal编程技术网

Apache反向代理将JSON响应包装为HTML格式

Apache反向代理将JSON响应包装为HTML格式,json,apache,reverse-proxy,mod-proxy,mod-proxy-html,Json,Apache,Reverse Proxy,Mod Proxy,Mod Proxy Html,如果之前有人问过这个问题(找不到任何类似的问题),或者是非常明显的问题,我会提前道歉,我只是个白痴 我正在使用Apache2.4反向代理几个内部页面和web应用程序。我已经启用了相当多的代理模块,包括mod_proxy_html,以便根据需要重写html。代理的每个页面或web应用程序都位于块内 一般来说,这很有效。链接起作用,资源按其应该的方式加载等等等等。但其中一些web应用程序使用AJAX实现了一些出色的UX功能,大多数AJAX请求都会命中代理JSON端点 我的问题是:任何代理JSON响应

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

我正在使用Apache2.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的响应正文重写/替换?

这似乎是在上讨论的问题

对于现代版本的软件(在2011年mod_proxy_html迁移到apache.org之前的某个时候),建议使用xml2StartParse指令进行修复

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


顺便问一下,为什么我可以使用Facebook的谷歌在这里“注册”,但不能使用OpenID?谷歌和Facebook付给你多少钱来勒索我?

我也有同样的问题。经过两天的测试,我找到了解决办法

在位置区域中,您需要进行注释

#SetOutputFilter  proxy-html
我只有以下几行

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

#可编程关闭
ProxyPassReverse/
#SetOutputFilter代理html
ProxyHtmlURL映射/外部blabla//blabla/
ProxyPassReverseCokiePath//blabla

通过注释掉 SetOutputFilter代理html
您只需禁用链接重写,因此proxy_html什么也不做。

您可以尝试使用LocationMatch和否定的lookahead正则表达式:这对眼睛来说有点难。也许用代码块格式化?