【发布时间】:2020-12-17 21:33:21
【问题描述】:
两部分问题可能相互关联,也可能不相互关联。
我在 Win10 上为 Java 应用程序运行 Stackify Prefix v3.0.28,它通常似乎工作正常:我可以看到我们应用程序中各种操作的痕迹。
第 1 部分:
当导航到我们应用程序的任何页面时,我收到两个加载 JS 文件的失败请求:
http://127.0.0.1:2/scripts/sfclient.xhr.min.js
http://127.0.0.1:2/scripts/sfclient.perf.prefix.min.js
这两个请求都因 ERR_CONNECTION_REFUSED 而失败。这些脚本引用不在我的 JSP 页面中,所以我假设它们是由 Prefix 注入的。
这是尝试加载 2 个脚本的原始 HTML:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><script src="http://127.0.0.1:2/scripts/sfclient.xhr.min.js"></script>
<script>var SPerfLib = window.SPerfLib || {}; SPerfLib.RequestId = '54fd58d1-7f7e-d3a4-0001-331676a83598'; if(!SPerfLib.isAttached) { document.addEventListener('DOMContentLoaded', function() { var l = document.createElement('script'); l.src = 'http://127.0.0.1:2/scripts/sfclient.perf.prefix.min.js'; document.body.appendChild(l);}); SPerfLib.isAttached = true;}</script>
我曾尝试寻找配置选项,但没有找到。我不确定脚本是否应该是来自端口 2 的服务器。前缀跟踪输出来自端口 2012,这似乎是正确的。
我尝试卸载并重新安装 Prefix,但结果相同。似乎没有任何更高版本的 Prefix 可以尝试。
如何让这些脚本成功加载?
第 2 部分:
在一个特定页面上,我们有一个 XHR 来检索一些 JSON 数据。服务器正在正确返回数据,但它在到达浏览器之前以某种方式被删除。响应头显示状态 200 但 0 字节 content-length,这会导致页面上的一些 JS 失败。如果我在没有前缀的情况下运行相同的东西,一切都会按预期工作 - 状态仍然是 200,但 content-length 是 37,并且 JSON 有效负载可见。
这是 Prefix 在播放时 XHR 的响应标头(注意 content-length: 0)
cache-control: no-cache, must-revalidate
content-language: en-US
content-length: 0
content-type: text/html
date: Mon, 31 Aug 2020 14:19:24 GMT
expires: Thu, 01 Jan 1970 00:00:00 GMT
last-modified: Mon, 31 Aug 2020 14:19:24 GMT
pragma: no-cache
server: WildFly/10
status: 200
x-powered-by: Undertow/1
x-powered-by: JSP/2.3
x-stackifyid: V1|8bbdce1c-a507-bbdc-0001-3378bff33740|
如果我从 JVM 选项中删除 Stackify 代理并禁用分析器,则响应标头如下所示:
cache-control: no-cache, must-revalidate
content-language: en-US
content-length: 37
content-type: text/html;charset=UTF-8
date: Mon, 31 Aug 2020 14:25:12 GMT
expires: Thu, 01 Jan 1970 00:00:00 GMT
last-modified: Mon, 31 Aug 2020 14:25:12 GMT
pragma: no-cache
server: WildFly/10
status: 200
x-powered-by: Undertow/1
我很感激任何建议!
【问题讨论】:
-
你能告诉我们这些麻烦的页面吗?它们部署在任何地方吗?
-
@IgorKanshyn 不幸的是,这些页面无法在线获得,所以我添加了加载脚本的 HTML 以及错误的 VS 良好的响应标头。