4

Я написал расширение Chrome для своей библиотеки. Он звонит AJAX в api.library.edu (школьная библиотека).Какие разрешения (если есть) Мне нужно предоставить расширение Chrome, чтобы он мог выполнять удаленные вызовы AJAX?

Мое расширение использует JQuery и мой код выглядит следующим образом:

$.get("http://api.library.edu/?period=1month", function (data) { 
    // process data 
}); 

Когда я загружаю мой Extension, он делает вызов AJAX и получить данные обратно.

Прямо сейчас, я не дам никаких разрешений на расширение (permissions is []).

Мое расширение будет работать, когда я его опубликую? Должна ли она требовать специальных разрешений на выполнение AJAX-вызовов с помощью jQuery?

Спасибо! Я просто убедился, что правильно написал свое расширение.

ответ

3

У вашего расширения не требуется никаких дополнительных разрешений для совершения AJAX-вызовов из одного источника. Однако, если api.library.edu не установить правильные заголовки CORS, вам, возможно, придется запросить разрешение кросс-происхождения для этого домена:

{ 
    "name": "My extension", 
    ... 
    "permissions": [ 
    "http://api.library.edu/" 
    ], 
    ... 
} 

From Google's Docs:

Каждая запущенная расширение существует в своей собственной отдельной безопасность изначальный. Без запроса дополнительных привилегий расширение может использовать XMLHttpRequest для получения ресурсов в рамках его установки.

...

Добавляя хосты или шаблоны соответствия хоста (или оба) в разделе разрешений файла манифеста, расширение может запросить доступ к удаленным серверам за пределами его происхождения.

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

+2

Спасибо. Теперь я знаю, почему это работает. Я попросил sysadmin из 'api.library.edu' установить« Access-Control-Allow-Origin: * »этот заголовок месяц назад. Он сделал это, и именно поэтому он работает. – bodacydo