gpt4 book ai didi

JavaScript 同源策略 - 它如何应用于不同的子域?

转载 作者:行者123 更新时间:2023-12-03 12:45:46 25 4
gpt4 key购买 nike

同源策略如何适用于以下两个域?

http://server1.MyDomain.com

http://server2.MyDomain.com

如果内容是从 server2 检索的,我可以在 server1 上托管的页面上运行 JS 吗?

编辑 根据 Daniel 在下面的回答,我可以使用 <script> 在不同子域之间包含脚本标签,但是异步请求呢?如果我从 server2 下载脚本到 server1 上托管的页面会怎样。我可以使用脚本与 server2 上的服务进行异步通信吗?

最佳答案

您只能使用 <script> 在不同子域之间包含脚本。标签,因为它不受政策约束。

使用 http://www.example.com/dir/page.html作为来源(来自 Wikipedia):

Compared URL                               Outcome  Reason
---------------------------------------------------------------------------------------------
http://www.example.com/dir/page.html Success Same protocol and host
http://www.example.com/dir2/other.html Success Same protocol and host
http://www.example.com:81/dir2/other.html Failure Same protocol and host but different port
https://www.example.com/dir2/other.html Failure Different protocol
http://en.example.com/dir2/other.html Failure Different host
http://example.com/dir2/other.html Failure Different host (exact match required)
http://v2.www.example.com/dir2/other.html Failure Different host (exact match required)

更新:

Can I use the script to communicate asynchronously with a service on server2?



是的,您可以使用 JSONP ,它利用了 <script> 的开放策略标签以从其他来源检索 JSON。

您可能还需要考虑使用反向代理,如以下 Stack Overflow 帖子所述:
  • What am I missing in the XMLHttpRequest?
  • 关于JavaScript 同源策略 - 它如何应用于不同的子域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2543784/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com