2016-10-31 2 views
25

служу Google объявления на сайте SSL успешно, с CORS заголовки установлены правильно (и широко открытыми) по rack-cors как:Google Adsense, CORS и Rails в Safari сбрасывает тысячи ошибок консоли

Rails.configuration.middleware.insert_before 0, Rack::Cors do 
    allow do 
    origins '*' 
    resource '*', headers: :any, methods: :any 
    end 
end 

я могу подтверждаю, что заголовки есть с завитком вызовом:

$ curl -I https://viewing.nyc -H "Origin: https://foobar.com" 
... 
Access-Control-Allow-Origin: https://foobar.com 
Access-Control-Allow-Methods: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS 
Access-Control-Max-Age: 1728000 
... 

Если вы посещаете в Chrome или Firefox, нет междоменных ошибок сценариев в консоли, но на сафари, есть тысячи.

Blocked a frame with origin "https://googleads.g.doubleclick.net" from accessing a frame with origin "https://viewing.nyc". Protocols, domains, and ports must match. 

Live example

Я вылил через страницу rack-cors вопросов с решение не работает до сих пор. Почему это происходит только на Safari, и как я могу это исправить?

+0

В качестве дополнительного бонуса я также награду 500 баунти за этот похожий вопрос от 2 лет назад, http://stackoverflow.com/questions/26858447/ssl-custom-tlds-crossdomain-xml-and- adsense-can-they-play-красиво и наградить его охотником за головами этого вопроса, если его решить. – coneybeare

+0

Чтобы быть уверенным, вы используете Sierra с последней версией Safari? – Marcs

+0

Да, Сьерра с последними, хотя проблема сохраняется в течение многих лет: http://stackoverflow.com/questions/26858447/ssl-custom-tlds-crossdomain-xml-and-adsense-can-they-play-nicely – coneybeare

ответ

-1

Я думаю, что добавление заголовков политики безопасности контента должно помочь вам.

add_header Content-Security-Policy: script-src 'self' https://googleads.g.doubleclick.net 

Подробнее здесь: -

https://developers.google.com/web/fundamentals/security/csp/

+0

Я реализовал CSP с соответствующими заголовками, увы, не исправил эту проблему. http://cloud.coneybeare.me/i1YN – coneybeare

-1

Эта тема (последний ответ) утверждает, что он должен работать, несмотря на ошибки. Сафари чувствительна к таким различиям. https://groups.google.com/forum/#!topic/ima-sdk/AxE9vZith00

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

Что касается ошибок, которые вы изначально переживали, «заблокировал кадр с началом» http://imasdk.googleapis.com «от доступа к кадру с началом» http://xxx.xxx.xxx.xxx «Протоколы, домены, и портов должны совпадать.», Мы уже видели эта ошибка до и, как вы заявили , она не должна влиять на воспроизведение рекламы. Объяснением этой ошибки является ограничение одного и того же происхождения, которое не разрешает одному домену от доступ к ресурсам из другого домена. Он блокирует Ресурсы Cross-Origin от совместного использования. Вы можете обновить заголовки CORS , как указано в нашей документации, чтобы разрешить совместное использование перекрестного .

+1

Ну, да, это вопрос. Я обновил заголовки CORS, как показано выше, но я все еще вижу проблему. Этот ответ просто перефразирует мой вопрос. Реклама работает, но просить меня просто игнорировать эти ошибки 1000-го года не является приемлемым решением. – coneybeare