【问题标题】:Is it possible to AJAX get the same url in HTTP and HTTPSAJAX 是否可以在 HTTP 和 HTTPS 中获取相同的 url
【发布时间】:2013-01-07 04:51:17
【问题描述】:

我知道您无法执行从 HTTP 到 HTTPS 的 AJAX 请求,因此我们正在努力让所提供的内容在 HTTP 和 HTTPS 上都可用。有没有告诉 AJAX 根据它在浏览器中使用的协议来获取文件?

例如你可以这样做:

....
type: "GET",
url: '//wp-content/themes/twentyeleven/js/jobopenings.json'
....

使用// 会自动提供正确的版本吗?

【问题讨论】:

  • 通常,是的。虽然你可以只做 /wp-content 而不必担心 http vs https
  • 如果你想通过完整的 URL 来做,那么explore the solutions outline here.
  • 你试过这样做吗?成功了吗?
  • 我会告诉你,我们正在努力首先在 http 和 https 上获取内容

标签: jquery ajax json


【解决方案1】:

你可以使用:

var protocol = window.location.protocol || document.location.protocol;

然后您可以将其用于您的网址...

....
type: "GET",
url: protocol + '//your-address.com/wp-content/themes/twentyeleven/js/jobopenings.json'
....

【讨论】:

    【解决方案2】:

    window.location 对象可以告诉当前使用的协议

    url: window.location.protocol + url_without_protocol
    

    但是relative urls可以达到同样的效果

    url: '/path/to/whatever/you/want.json'
    

    这将获取服务器根目录并将你的东西粘贴在它之后,并采用协议。

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      只需/wp-content/themes/twentyeleven/js/jobopenings.json。注意单斜线。

      / 开头的 URL 表示它位于您的域的根目录(它将自动使用正确的 http(s) 协议)。

      【讨论】:

        猜你喜欢
        • 2011-04-28
        • 2019-03-07
        • 2011-03-03
        • 2011-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-30
        • 2012-12-19
        相关资源
        最近更新 更多