【问题标题】:Help! YUI async GET request using HTTPS defaulting to OPTIONS request method帮助! YUI 异步 GET 请求使用 HTTPS 默认为 OPTIONS 请求方法
【发布时间】:2010-06-29 21:29:24
【问题描述】:

由于某种原因,每当我使用 YUI 执行异步请求并将其指定为 GET 或 POST,并且请求是 HTTPS 时,实际请求都会通过 OPTIONS 请求方法来实现。

帮助!为什么要这样做?

附:我用 Prototype 尝试过这个,得到了同样的结果。

【问题讨论】:

    标签: javascript https prototypejs request yui


    【解决方案1】:

    我假设请求是从非安全 (http) 页面发出的。 (或者如果它来自安全页面,那么域可能不同。)

    对您的安全 (https) 资源的请求被视为跨源请求。要使 GET/POST 成功,源和目标完全限定域名必须完全相同相同以符合同源安全策略。

    OPTIONS 请求本质上是 HTTP 握手,或 preflight 发生在客户端和目标资源之间,以确定客户端是否有权访问目标来自源头的资源。

    Safari 和 Firefox 等现代网络浏览器已实施 W3C 跨源资源共享 draft 政策,因此当它失败时您会看到 OPTIONS 预检通信 - 可能存在某种与安全或网络相关的 JavaScript 错误。如果 OPTIONS 预检成功,则可以进行原始的 GET/POST。

    我建议阅读:

    【讨论】:

      猜你喜欢
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      • 1970-01-01
      • 2019-05-15
      • 2018-07-11
      • 2023-03-06
      相关资源
      最近更新 更多