gpt4 book ai didi

ajax - 跨域 XHR/AJAX : a possible workaround?

转载 作者:行者123 更新时间:2023-12-01 13:00:05 25 4
gpt4 key购买 nike

我刚刚有了进行跨域 AJAX 调用的想法,因为到目前为止,它们确实是一个需要处理的 PITA。这是一个我在网络上的任何地方都没有看到的解决方案,所以它可能(可能是)有缺陷/危险出于某种原因,我现在似乎看不到,所以我求助于你告诉我这是否合法:

今天,如果您拥有一个域 www.foo.com,您就不能发出 XML Http 请求来表示 www.bar.com。但是,如果您为 foo.com 创建了一个 XHR,然后它会通过 cURL 请求(或套接字或其他任何东西)向 bar.com 请求该页面怎么办?

您通常设置您的 xhr,无论是 GET 还是 POST,但是您将它发送到 foo.com/remote-xhr.php 并添加一个包含最初预期 URL 的“url”参数和“params”包含参数的参数。

remote-xhr.php 解析“params”,调用“url”,并“回显”响应。

这绝对是一种权衡,因为:1. 您使用其他解决方案(脚本标记 hack/JSONP)进行了 2 次调用,而不是一次调用,并且 2. 您失去了可能拥有的任何身份验证,因为客户端没有请求页面,但是服务器是(您可以使用唯一 ID、salt 等解决它);但是你有一个完全正常的 XHR 调用,可以与任何 distand 域一起工作!

我错过了什么?

最佳答案

我想你已经想到了其中的一些,但以防万一

  1. 如果您没有对服务器端 XHR 传递进行任何类型的身份验证,您可能希望限制可以调用的 URL 并解析参数以发现任何异常的 XSS 机会。

  2. 延迟增加可能会给您的网络服务器带来压力,因为它可能会使请求/响应线程等待 cURL 响应恢复的时间更长(除非您正在执行某种额外的异步架构)。缓存 cURL 响应可能更可取,但取决于您可能遇到的 POST 参数的变体数量,这可能不是一个选项。

我确定还有其他取决于您的应用程序,但我会继续说我正在做这样的事情,但这只是因为我支付了一个我不想直接暴露给我的外部 API AJAX 应用程序...所以我已经非常大量地抽象了调用,并将它们限制为几乎单个外部 URL。

关于ajax - 跨域 XHR/AJAX : a possible workaround?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6906903/

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