2015-06-08 2 views
0

При попытке открыть следующую страницу в качестве всплывающего окна я сталкиваюсь с сообщением:Не удается запустить JavaScript строки из всплывающего

Отказался загрузить сценарий «http://allinternetfinance.com/LetMeKnow/jquery-1.11.2.js», потому что он нарушает следующие директивы Content Security Policy : "script-src 'self' 'unsafe-eval'

index.html: 4 Отказался от выполнения встроенного скрипта, поскольку он нарушает следующую директиву политики безопасности контента:" script-src "self '' unsafe-eval '" . Для включения встроенного выполнения требуется либо ключевое слово «небезопасное-встроенное», либо хэш ('sha256-anuyZ9J88P7xGyiuMhMfVwpc613qkiD1ZB3UusOLD6A ='), либо nonce ('nonce -...').

HTML, является:

<html> 
<head> 
    <script src="http://allinternetfinance.com/LetMeKnow/jquery-1.11.2.js";></script> 
    <script> 
    $(document).ready(function() { 
     window.location.replace("http://localhost:8080/MembershipApp/index.html"); 
    }); 
    </script> 
</head> 

<body> 
</body> 

все, что я получаю маленький белый квадрат вместо страницы Im пытается перенаправить его на.

+0

Вы используете это с расширением google? если нет, то это может быть связано с некоторыми HTTP-заголовками XSS: [см.] (https://www.owasp.org/index.php/List_of_useful_HTTP_headers).'script-src 'self' означает, что вам разрешено запускать скрипт только из той же src, что и текущая страница. – Hacketo

+0

http://stackoverflow.com/questions/23216884/chrome-extension-content-security-policy-directive- ошибка – epascarello

ответ

1

Вы должны сделать две вещи: первое

  • Скачать Jquery и загрузить его внутри папки расширения, или не использовать его вообще.
  • Переместить содержимое тега сценария в файл .js и ссылаться на него.

https://developer.chrome.com/extensions/contentSecurityPolicy

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

chrome.tabs.create({ url: "http://localhost:8080/MembershipApp/index.html"})

0

Пожалуйста, прочитайте на инъекции скрипт для расширений Chrome. Programmatic Injection for Chrome Extensions

  1. Вы, вероятно, не имеют cross-origin permissions для расширения
  2. Вы должны «вводить» сценарий или использовать manifest declaration, прежде чем она годна к употреблению. Это связано с заголовками и «той же политикой происхождения» для современных браузеров в качестве меры безопасности.

Наконец, убедитесь, что Вы вводите скрипт на вкладку вновь созданного или в существующую вкладку, НЕ выполнить скрипт внутри всплывающего окна самостоятельно или он будет выполнять в всплывающем окне, как если бы оно Случайность собственное окно (если это не то, что вы хотите.)

EDIT: в идеале, вы хотите, чтобы загрузить скрипт JQuery, как упоминалось другой плакат, и хозяйничать, что внутри вашего расширения. Убедитесь, что вы объявили библиотеку jquery как Web Accessible Resource, хотя или получите другую ошибку безопасности.

Надеюсь, это поможет.

JRad Плохое

Смежные вопросы