Для вызова API по умолчанию используется http: что приводит к его блокировке Safari. - PullRequest
0 голосов
/ 04 июня 2019

Я использую API для генерации булавок на карте Google, но он блокируется в Safari за обслуживание небезопасного контента.Я звоню в https: версию API, но он говорит, что контент поступает из 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, что меня действительно смущает.Почему он пытается запустить контент с http: когда у меня явно есть https: в вызове ajax?

Ответы [ 3 ]

1 голос
/ 04 июня 2019

Запрашиваемый вами 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// в конце).

0 голосов
/ 04 июня 2019

Итак, после небольшого поиска в Google, решение, которое работало для меня, состояло в том, чтобы просто добавить этот метатег на сайт:

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

Я не очень хорошо разбираюсь в метатегах, но приложение сейчас работает, и это хорошо. Если кто-то видит что-то не так с этим, пожалуйста, дайте мне знать, чтобы я ничего не испортил, но пока это мое решение.

0 голосов
/ 04 июня 2019

Я не очень уверен в этом, но иногда Safari выдает эту ошибку из-за проблем с сертификатами.Вы можете попробовать добавить 'https://www2.itemlocator.net' в сертификаты сафари.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...