iOS Отказано в подключении, поскольку оно не указано ни в директиве connect-src, ни в директиве default-src политики безопасности контента

Поэтому я сделал приложение phonegap, которое использует socket.io для работы.
У меня есть следующая Content-Security-Policy (CSP)

<meta http-equiv="Content-Security-Policy" content=" default-src * data: blob: ws: wss:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * ws: wss:;"> 

Когда я запускаю приложение на safari / iOS, я получаю следующую ошибку:

 Refused to connect to ws://10.0.1.63:3000/socket.io/?EIO=3&transport=websocket&sid=xTaMJwP3rVy3UnIBAAAi because it appears in neither the connect-src directive nor the default-src directive of the Content Security Policy. 

А ТАКЖЕ:

 SecurityError (DOM Exception 18): The operation is insecure. 

То же самое приложение с тем же CSP отлично работает на Chrome / Android, но не на Safari / iOS.
Я думаю, что это имеет какое-то отношение к:
усовершенствованная политика безопасности контента (WebKit)

Ресурсы, которые, кажется, приходят много:

  • Lounge не работает над https из-за соблюдения правил безопасности контента в Safari v10
  • запрос не отправляется на iOS 10.0

Почему он говорит «Отказ от подключения к» URL-адресу, начинающему с ws: », потому что он не указан ни в директиве connect-src, ни в директиве по умолчанию-src политики Content-Security-политики, даже если она упоминается в обоих?

Хорошо, Safari / iOS является более строгим, чем хром / Android, когда дело доходит до этого, все в порядке, но мне все же нужно разрешить мне разрешить соединение. Это действительно расстраивает разработчика приложений! Решения?

EDIT: сделал отчет об ошибке на bugs.webkit.org: https://bugs.webkit.org/show_bug.cgi?id=165754

One Solution collect form web for “iOS Отказано в подключении, поскольку оно не указано ни в директиве connect-src, ни в директиве default-src политики безопасности контента”

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

То, что я сделал неправильно, было:
У меня был следующий руководитель:

 <head> <meta charset="utf-8" /> <!--<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' http://* 'unsafe-inline'; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'" />--> <meta http-equiv="Content-Security-Policy" content=" default-src * data: blob: ws: wss: gap://ready file://*; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * ws: wss:;"> <meta name="format-detection" content="telephone=no" /> <meta name="msapplication-tap-highlight" content="no" /> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" /> <meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src"/> <link rel="stylesheet" type="text/css" href="css/reset.css" /> <link rel="stylesheet" type="text/css" href="css/index.css" /> <title>Kerst app!</title> </head> 

И я не заметил, что у меня был метатег «Content-Security-Policy» дважды
Я точно знаю? Дубликат заставил iOS просто взять последнюю версию, которая была более строгой. Удалил дубликат, работал в первый раз.

  • Улучшение скорости CSS3 на iPad
  • Как запретить WKWebView неоднократно запрашивать разрешение на доступ к местоположению?
  • Какие действия запускают функцию webViewWebContentProcessDidTerminate
  • Прокрутка iOS Safari вверх не работает на определенных страницах. Зачем?
  • проблема с прокруткой webkit-переполнения с осью x?
  • Как диагностировать сбои, которые, как представляется, являются внутренними для WebCore (Thread 2, SIGSEGV)
  • Проведите анимацию в CSS3
  • iOS Webkit не работает на устройстве, но работает на симуляторе при быстром
  • WKWebView внутри UIScrollView: прокручивание конфликта
  • Как я могу получить файл с помощью WKWebView?
  • видимые полосы прокрутки IOS с "webkit-overflow-scrolling: touch"
  • Interesting Posts

    Проблемы с HTML5 Web SQL Database

    Поворот и обрезка изображения IOS

    Невозможно захватить маски в пределах слоя просмотра

    Подождите, пока NSURLConnection sendAsynchronousRequest не будет завершен

    Как получить заголовок для UIButton, когда он нажат

    Отключить уведомление о записи звука, когда приложение находится в фоновом режиме в iOS SDK 4.2+

    Лучшие практики: быстрый прокрутка UITableView?

    Уведомление IOS о подключении Wi-Fi, включая SSID

    Получить контакты, отсортированные по Модифицированная дата iOS

    Можно ли скрыть кнопку «Действие» в представлении UIDocumentInteractionController?

    Связанные объекты в Swift, действительно ли глобальный ключ создает конкретные экземпляры?

    Ошибка NSURLSession Memory Утечки возникают при использовании веб-служб в IOS

    Как звонить (набирать) с помощью символа «*» в IOS?

    Objective-C / iOS: преобразование массива объектов в строку JSON

    как быстро бросать ошибки в закрытие?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.