angular - 在 HTTP 拦截器中克隆 HTTP 请求后找不到 404
问题描述
我正在开发一个 Angular 应用程序并尝试解决 IE 缓存问题。Web API 是在 .NET Core 中开发的。从许多文章中,我发现可以通过在 HTTP 请求标头中不添加缓存来解决该问题。这就是我所拥有的
const clonedReq = req.clone({
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Cache-Control': 'no-cache'
})
});
但是一旦我使用上面的代码,所有的 API 调用都会出现 404 错误。
以下是开发者工具中捕获的 HTTP 请求:
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Access-Control-Request-Headers: cache-control
Access-Control-Request-Method: GET
Connection: keep-alive
Host: localhost:4900
Origin: http://localhost:6521
解决方案
如果您有没有任何身份验证令牌的获取请求,则在浏览器中打开 url 粘贴 url 选项卡并检查您是否得到结果。
您可能遇到以下问题之一 - 1. 您请求的 API 的 URL 错误 2. 请求的 API 未实现或不可用。
为什么在 HTTP 克隆中使用两个标头?
const clonedReq = req.clone({
headers: req.headers.set('Cache-Control','no-cache') . // Header 1
headers: new HttpHeaders({ // Header 2
'Content-Type': 'application/json',
'Cache-Control': 'no-cache',
'Pragma' : 'no-cache' //IE Ajax cache
})
});
推荐阅读
- c# - Razor 页面,如何使用标签助手 asp.net 核心进行路由
- python - 如何修复此错误 'numpy.ndarray' 对象在下面的代码中没有属性 'append'
- javascript - 记录更新后组件不会重新呈现
- alexa - Alexa Skill - 有可能得到用户所说的吗?
- python - 为什么我的脚本不打印找到的密码?相反,它只是不断尝试其他密码
- javascript - 尝试从 php 文件中获取 json 数据时出现错误
- c++ - 如何将带有 auto 的语句转换为使用类型的语句
- javascript - 如何使用 JS/jQuery 在 HTML 表格中选择一个特定的单元格?
- javascript - 为什么我的 setTimeout() 函数在我给它的 5 秒计时器后不执行代码?
- mysql - 数据库设计问题 - 空外键