Загрузка данных с использованием AJAX - PullRequest
0 голосов
/ 03 марта 2012

Я пытаюсь загрузить данные, используя запрос AJAX в моем расширении Chrome. Насколько я понимаю, при использовании расширений Chrome вы можете сделать запрос AJAX, и вам не нужно беспокоиться об одной и той же политике происхождения, если вы установите соответствующие разрешения.

Однако после установки правильных разрешений (по крайней мере, я так думаю) я все равно получаю сообщение об ошибке:

XMLHttpRequest не может загрузить https://stackoverflow.com/posts/popup/close/9498103. Исходное расширение chrome: // bcbifciedokdgkokbbfippkbecnkpclj не разрешено Access-Control-Allow-Origin.

Мои разрешения (как установлено в моем файле manifest.json) являются частью этого проекта может вам также понадобится увидеть другой код:

  "permissions": [
    "http://stackoverflow.com",
    "https://stackoverflow.com",
    "http://*.stackoverflow.com",
    "https://*.stackoverflow.com"
  ]

Что-то я пропустил или это просто невозможно?

Ответы [ 2 ]

2 голосов
/ 03 марта 2012

Упоминания хоста недостаточно, вы должны добавить /* после каждого домена.

  "permissions": [
    "https://stackoverflow.com/*",
    "https://stackoverflow.com/*",
    "http://*.stackoverflow.com/*",
    "https://*.stackoverflow.com/*"
  ]

Готовый к использованию междоменный демонстрационный пример XHR можно найти в следующем ответе: Междоменный запрос XMLHttpRequest с использованием фоновых страниц

1 голос
/ 03 марта 2012
  1. Вы должны убедиться, что вы создаете упакованное приложение / расширение, а не размещенное.Запросы перекрестного происхождения не будут работать с размещенными приложениями.

  2. Вам необходимо добавить * в конце вашего первого URL, и он будет работать.Пример:

"http://stackoverflow.com/*"
...