当我的服务器以状态码304响应时,我有一些用户无法访问我的angularjs应用程序上的一些模板。Angularjs正在记录[$compile:tpload]
,正如你在下面看到的,视图并没有显示给用户。因此,不知何故,angular没有从缓存中获取视图。这个问题似乎是间歇性地发生的,页面在清理浏览器缓存+页面刷新后再次开始正常工作。
我正在运行Angularjs v1.6.6和ui-router v0.3.2,并且我在firebase主机上托管我的静态文件。它是在最新版本中修复的吗?否则,我应该如何处理这种情况?
可能未处理的拒绝:{"data":"","status":304,"config":{"method":"GET","transformRequest":null,"transformResponse":null,"jsonpCallbackParam":"callback","cache":{},"headers":{"Accept":"text/html"},"url":"/p/p.html"},"statusText":"","xhrStatus":"complete"}
使用LogRocket捕获请求/响应
URL: "https://url.com/js/p/a/template.html"
method: "GET"
status: 304
duration: "00:00.061"
REQUEST
headers
Accept: "application/json, text/plain, */*"
body: null
credentials: ""
mode: ""
referrer: ""
RESPONSE
headers
cache-control: "max-age=3600"
date: "Sat, 15 Sep 2018 20:03:12 GMT"
etag: ""f166a7577a895x3f7dcc5accae97dcba""
expires: "Sat, 15 Sep 2018 17:45:33 GMT"
vary: "Accept-Encoding"
via: "1.1 varnish"
x-cache: "HIT"
x-cache-hits: "1"
x-served-by: "cache-bma1622-BMA"
x-timer: "S1537041792.121483,VS0,VE1"
body: ""
发布于 2019-12-20 10:50:12
我最近也遇到了同样的问题。
经过一番挖掘,我终于发现根本原因是修改日期的模板HTML文件的太旧了。我发现如果你的模板文件在1997-0726 05:00
之前被修改,问题就会发生。
请注意,我的测试web服务器islighttpd
,其他web服务器可能会有类似的问题,但日期可能不同。
例如,可以执行以下命令来重现此问题或修复此问题,其中*.html文件是角度模板文件。
date -s "199707260500“& touch login.html;touch status.html
date -s "199707260501“& touch login.html;touch status.html
发布于 2018-08-18 07:11:16
您可以尝试将此代码添加到app.config
函数中。
app.config(['$qProvider', function ($qProvider) {
$qProvider.errorOnUnhandledRejections(false);
}]);
在其他情况下,人们看到了这个“错误”,他们已经使用代码修复了它作为解决办法。
https://stackoverflow.com/questions/51899907
复制相似问题