Значение «Chrome-extension не разрешено Access-Control-Allow-Origin»? - PullRequest
1 голос
/ 07 декабря 2011

Это моя первая разработка Google Chrome Extentions, моя цель - извлечь URL-адрес из службы REST, который я размещаю на локальном компьютере, и отобразить его во всплывающем окне ... это код, который я использую:

<style>
body {
    min-width:357px;
    overflow-x:hidden;
}
</style>

<script>
var req = new XMLHttpRequest();
req.open(
    "GET",
    "http://URLTORESTSERVICE/Items",
    true);
req.onload = showWorklistItems;
req.send(null);

function showWorklistItems() {
    var worklistitems = req.responseXML.getElementsByTagName("WorklistItem");
    for (var i = 0, wli; wli = worklistitems[i]; i++) {
    var link = document.createElement('a');
    link.setAttribute('href', constructWLIURL(wli));
    document.body.appendChild(link);
  }
}

function constructWLIURL(wli) {
    return "testing" + wli.getAttribute("SerialNumber");
}
</script>

Но я получаю эту ошибку при выполнении:

XMLHttpRequest cannot load http://URLTORESTSERVICE/Items. Origin chrome-extension://caioejefhikijgcaondigdaaobomailk is not allowed by Access-Control-Allow-Origin.

Ответы [ 2 ]

3 голосов
/ 07 декабря 2011

Вы используете CORS или "обмен ресурсами между источниками". http://enable -cors.org / - хороший ресурс на эту тему. Это вызвано тем, что ваш запрос не находится в том же домене, что и служба данных.

Чтобы вы могли использовать данные в запросе ajax из другого домена, вы должны попросить поставщика данных добавить заголовок CORS, аналогичный приведенному ниже, в свой HTTP-ответ. (Примечание: JSONP хотя и опасен, но обходит эту проблему.)

Access-Control-Allow-Origin: *

РЕДАКТИРОВАТЬ: я вижу, что вы поставщик данных - выведите этот заголовок, и вы будете установлены.

0 голосов
/ 07 декабря 2011

Access-Control-Allow-Origin - заголовок, отправленный (или нет) вашим сервером.Некоторые браузеры (особенно Chrome и Firefox) уважают этот заголовок в отношении междоменных запросов.Это означает, что, если исходный домен не указан в этом заголовке, браузер откажется выполнить запрос (или, по крайней мере, полностью).

Вы можете изменить свой локальный сервер, чтобы правильно установить заголовок, или, возможно, вы моглиКак-то изменить настройки chrome, чтобы перестать воспринимать то, что вы делаете, как междоменный запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...