【问题标题】:Calling an API defaults to http: which is causing it to be blocked by Safari调用 API 默认为 http: 这导致它被 Safari 阻止
【发布时间】:2019-06-04 13:06:51
【问题描述】:

我正在使用 API 在 Google 地图上生成图钉,但它在 Safari 上被阻止以提供不安全的内容。我正在调用 API 的 https: 版本,但它说内容来自 http: 版本。

function callSpotAPI(lat, lng){
    $.ajax({
        type: "POST",
        url:"https://www2.itemlocator.net/ils/locatorJSON",
        data: {
            //API data
        },
        dataType: "jsonp",
        success: function(data) {
            //Handle Success
        },
        error: function() {
            //Handle Error
        }
    })
}

此脚本在 Safari 上返回此警告: [已阻止] https://www.my-site.com/pages/product-locator 的页面不允许运行来自 http://www2.itemlocator.net/ils/locatorJSON/?callback=jQuery33105072229741619069_1559653172805&customer=_____&item=_____&lat=_____&long=_____&radius=20&_=1559653172806 的不安全内容。

我省略了发送的实际数据,以防万一敏感,比抱歉更安全,但这个应用程序在 Chrome 和 Firefox 上运行良好,这让我很困惑。当我在 ajax 调用中明确有 https: 时,为什么它试图从 http: 运行内容?

【问题讨论】:

  • dataType: "jsonp",type: "POST", 不兼容。 JSONP 请求总是 GET 请求。

标签: javascript api safari


【解决方案1】:

您请求的 URL 正在响应 HTTP 重定向到非 HTTPS URL。

[ ~ ] ➜  curl -I "https://www2.itemlocator.net/ils/locatorJSON"
HTTP/1.1 301 Moved Permanently
Date: Tue, 04 Jun 2019 14:02:15 GMT
Server: CherryPy/3.2.2
Content-Length: 143
Content-Type: text/html;charset=utf-8
Location: http://www2.itemlocator.net/ils/locatorJSON/
Connection: close

正确的 URL 似乎是 https://www2.itemlocator.net/ils/locatorJSON/(末尾带有 /)。

【讨论】:

  • 所以那个 / 是导致问题的原因......我真的很讨厌编码有时哈哈。感谢您的帮助,我很感激!
【解决方案2】:

我对此不太确定,但有时 safari 会因为证书问题而出现此错误。您可以尝试将“https://www2.itemlocator.net”添加到 Safari 证书中。

【讨论】:

  • 这是我需要在我的 Safari 上做的事情,它只会影响我的电脑吗?我需要一个适合所有人的解决方案,因为这是一个公共网站
  • 该 URL 的证书没有问题。如果有,错误消息不会抱怨http://etc(没有s)。
【解决方案3】:

所以经过一番谷歌搜索后,对我有用的解决方案就是将这个元标记添加到网站:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

我不太精通元标记,但该应用程序现在可以正常运行,这很好。如果有人发现这样做有什么问题,请告诉我,这样我就不会搞砸了,但现在这是我的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 2021-11-08
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2014-07-27
    相关资源
    最近更新 更多