【问题标题】:What triggers cross-domain violation when AJAX request?AJAX请求时触发跨域冲突的原因是什么?
【发布时间】:2022-01-19 13:09:44
【问题描述】:

我在下面被问到一个问题,但找不到答案。我查找了类似的帖子,但许多帖子(如this)最终都在谈论跨域,而不是跨域。以下问题的答案是什么?

问:假设您正在处理http://example.com/path/to/foo.html 的网页。 如果您要向以下 URL 发送 AJAX 请求,哪个不会触发跨域违规?

答:http://example.com/bar

乙:https://example.com/path/to/bar.html

C:https://example.com:80/bar

D:http://www.example.com/bar

E:C and D

提前谢谢你。

更新: 原来,我看到一个网站说there is a 'Cross-domain violation' which is different from 'CORS' since 'origin' and 'domain' points different part.,这就是为什么我一直在寻找'cross-domain violation'的定义。但它实际上与“同源策略”相同,如下面的答案所示。

【问题讨论】:

  • 你所说的“跨域违规”指的是什么?您是在问哪些跨域请求会触发预检请求?如果是这样,请查看developer.mozilla.org/en-US/docs/Web/HTTP/…
  • 这个问题专门问'跨域违规'。
  • 我问你这个词是什么意思。我不清楚。
  • 我也没有。这就是我在这里问的原因。
  • 他们措辞不佳,尤其是。如果你不能要求澄清。该术语不是标准术语,但我猜它指的是违反同源策略的请求,可以使用 CORS 有选择地放宽。

标签: ajax security browser cors


【解决方案1】:

因此:

当资源位于不同的位置时,它是跨域的 (子)域、协议或端口!

您还应该使用exact match host,这样http://www.example.com/bar 就行不通了。

查看this 以查看更多示例。

您不应该在 A 选项中获得 CORS。

还有 this 文章充分描述了 CORS。

【讨论】:

  • "当资源位于不同的(子)域、协议或端口时,它是跨域的!"这句话出自哪里?我发现如果“跨域”违规,它会限制 http 和 https,所以答案可以是 A 和 D。但“跨域”限制不在乎……而且我仍然对“跨域违规”感到困惑' 那么...另外,应该只有 1 个答案。
  • @Chi 谢谢,我更新了答案。引用没问题,效果很好,正如维基百科所说:“{scheme, host, port}”模式是协议。看看this,这可能会有所帮助。
  • 谢谢!这个链接是我见过的最清晰的!
猜你喜欢
  • 2018-04-12
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 2012-12-04
  • 2015-10-09
  • 2012-04-15
相关资源
最近更新 更多