当前位置: 首页 > 知识库问答 >
问题:

javascript - 为什么会出现CORS error?

太叔昆
2025-01-17

先登录成功了。
image.png
image.png

再次调用,就出现了CORS error
image.png
image.png
image.png

在Login页调用这个接口就是正常的,换一个页面调用这个接口就出现了跨域问题。

我把这段代码注释以后就正常了。
image.png

共有4个答案

杨飞语
2025-01-17

Access-Control-Allow-Headers 要包含自定义的请求头,没登录的时候没有 X-Token 这个头,所以正常,登录了之后有个请求头就会报错。

周墨一
2025-01-17

这里面的截图看下image.png

史懿轩
2025-01-17

看一下控制台抛出的具体CORS信息。

看OP你的截图框选部分,注释掉就没有出现跨域异常来看。应该是前端部分加了自定义请求头内容,而后端或者代理服务器返回的跨域允许头中并没有允许这个自定义请求头参数。在 Access-Control-Allow-Headers 中添加一下对应的参数名即可。

上官英哲
2025-01-17
### 为什么会出现 CORS error?

CORS(跨源资源共享)错误通常发生在当一个资源(例如字体、API 请求等)被来自不同源的网页请求时,而该资源所在的服务器没有正确配置 CORS 策略来允许这种跨源请求。

在你的情况下,尽管域名相同,但 CORS 错误可能由以下几个原因引起:

1. **端口或协议不同**:
   - 即使域名相同,如果请求和资源的端口号不同(例如,一个是 HTTP 80 端口,另一个是 HTTPS 443 端口),或者使用的协议不同(HTTP vs HTTPS),也会被视为跨源请求。

2. **前端代码或配置问题**:
   - 检查是否在不同的页面或组件中使用了不同的请求配置,例如是否错误地设置了请求头中的 `Origin` 或 `Referer`。

3. **服务器配置**:
   - 服务器需要配置适当的 CORS 头来允许来自特定源的请求。即使域名相同,服务器也需要明确允许跨源请求,包括可能的子域名、端口和协议差异。

4. **缓存问题**:
   - 有时候,浏览器缓存或代理缓存可能导致旧的 CORS 策略被错误地应用。尝试清除缓存或使用无痕/隐私模式进行测试。

5. **前端路由或重定向**:
   - 如果你的应用使用了前端路由(如 React Router),并且某些路由或组件的处理方式导致了请求被视为跨源,这也可能是一个原因。

6. **浏览器安全策略**:
   - 某些浏览器安全设置或扩展可能会干扰 CORS 策略的执行。

**解决步骤**:
- **检查请求的完整 URL**:确保请求的完整 URL(包括协议、域名、端口、路径和查询参数)在登录页面和其他页面上是完全一致的。
- **查看服务器 CORS 配置**:检查服务器端的 CORS 配置,确保它允许从你的应用发出的所有相关源的请求。
- **使用开发者工具**:在浏览器中打开开发者工具,查看网络请求的详细信息,特别是请求头和响应头,看看是否有 CORS 相关的错误或警告。
- **清除缓存和 Cookie**:尝试清除浏览器缓存和 Cookie,然后重新加载页面进行测试。
 类似资料:
  • 问题内容: 当我运行以下代码时: 我得到一个异常说: 为什么会出现此异常? 编辑:tmpList是一个LinkedList,其每个节点都包含DepConfAttr类型的对象。 我正在基于内存(首先是最高内存)对tmpList进行排序,这是DepConfAttr对象的属性之一。 上面的代码反映了我要通过以下代码实现的目标 问题答案: 为什么会出现此异常? 您要遍历列表,而不是通过迭代器从列表中删除一

  • 错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码:

  • PWA 是 Progressive Web Apps 的缩写,翻译为渐进式网络应用。早在 2014 年, W3C 就公布过 Service Worker 的相关草案,但是其在生产环境被 Chrome 支持是在 2015 年。因此,如果我们把 PWA 的关键技术之一 Service Worker 的出现作为 PWA 的诞生时间,那就应该是 2015 年。在关注 PWA 是什么之前,先来了解一下为什么

  • 我实现了以下REST调用: 也是一个提供和使用application/x-protobuf的提供者类: 我的pom。xml看起来像: 我的小部件。原型: 选项java_package=“example”;选项java\u outer\u classname=“WidgetsProtoc”; 对于http://localhost:8080/RESTfulExample/widgets我得到以下错误消

  • 问题内容: 我已经阅读了 为什么在尝试在数据库中加载Blob时会出现java.lang.AbstractMethodError?,下载了我能找到的所有11g jdbc驱动程序,并将它们作为库和/或jar文件添加到了我的NetBeans应用程序中。我仍然不断收到相同的AbstractMethodError,这让我很生气!任何指导将不胜感激! 错误信息: 问题答案: 问题的原因是软件不兼容(jar文件

  • 我得到一个当我运行我的Java应用程序。典型的原因是什么?

  • 问题内容: 我正进入(状态 : 当我尝试运行以下 (尽管不完整) 代码段时: 在如下所示: 我正在尝试和班级之间建立联系。 发生此异常的原因是什么? 我创建了两个表并使用以下sql命令: POJO 人 地址 问题答案: 对于多对多关系交换,您需要专用的映射表 6.2.4。价值和多对多关联的集合 即,您需要类似PersonAddress表的内容 其中p_id是对人员表的FK引用,而a_id是对地址表

  • 问题内容: 我正进入(状态 : 当我尝试运行以下 (尽管不完整) 代码段时: 在如下所示: 我正在尝试和班级之间建立联系。 发生此异常的原因是什么? 我创建了两个表并使用以下sql命令: POJO 人 地址 问题答案: 对于ManyToMany Relationshhip,您需要专用的映射表 6.2.4。价值和多对多关联的集合 即,您需要类似PersonAddress表的内容 其中p_id是对人员