【问题标题】:angular 4 - Response for preflight is invalid (redirect)角度 4 - 预检响应无效(重定向)
【发布时间】:2017-11-15 01:06:48
【问题描述】:

我在本地有 angular 4 项目,我想使用 api 获取信息,我收到此错误

localhost/:1 XMLHttpRequest cannot load http:????. Response for preflight is invalid (redirect)

我在本地有一个 jquery 项目,它调用相同的 api 并且没有错误地得到答案

什么是问题?我在这个网站上看到很多问题和答案,没有人可以帮助我。

【问题讨论】:

  • 这是一个 CORS 问题。服务器没有以预期的标头响应预检请求,因此浏览器拒绝发出实际请求。您的 jquery 项目是否从与您发出请求的 URL 和端口相同的 URL 和端口加载,而 Angular 项目是否从不同的 URL 或端口加载?
  • 我在 localhost 和相同的 url 中运行它们,但没有任何变化

标签: angular http preflight


【解决方案1】:

Gunter 提到的CORS 就是这种情况。如果您请求的资源与您请求的域位于不同的域(如在您的情况下,即 api 的域),那么您会收到此类错误。

在执行某些类型的跨域 Ajax 请求时,支持 CORS 的现代浏览器会插入一个额外的“预检”请求,以确定它们是否有权执行该操作。

请参考此链接:Cross-origin resource sharing

【讨论】:

  • 我必须做什么?
  • 您可以在您的 api 端设置preflight 响应。你也可以参考这个stackoverflow.com/questions/35841786/…
  • 在 angular 4 中,我使用 $.ajax 而不是用户 angular http,错误消失了!!!
  • 现在您正在混合使用 jquery 和不推荐的 Angular 做事方式。正确的 Angular 项目不应该依赖 jquery
猜你喜欢
  • 2017-12-30
  • 2016-09-25
  • 2018-02-21
  • 2016-10-20
  • 2017-04-25
  • 2016-06-20
  • 1970-01-01
  • 2019-03-21
  • 2018-02-13
相关资源
最近更新 更多