Я начал новое расширение, исходя из старого, которое я написал ранее, и которое сейчас работает правильно. Схема выполнения xhr довольно обычна для расширений Google Chrome: сценарий содержимого вызывает chrome.extension.sendRequest (данные, обратный вызов), а фактический запрос на межсайтовый сайт выполняется в backround.html.У меня есть сайт в «разрешениях», но продолжайте получать «Origin chrome-extension: // abc не разрешен Access-Control-Allow-Origin».
Кроме того, I'v удостоверился, что запрошенный сайт добавлен в раздел «Разрешения» manifest.json.
Однако консоль background.html отображает: «... Происхождение chrome-extension: // .. не допускается Access-Control-Allow-Origin».
Вопрос заключается в следующем: за исключением того, что целевой домен не указан в «разрешениях» (я действительно пытался даже здесь), ЧТО ЭТО может привести к этой ошибке?
Вот некоторые важные фрагменты кода:
manifest.json:
{
"name": "Register quote",
"version": "0.0.2",
"permissions": [ "<all_urls>" ],
"background_page" : "background.html",
"content_scripts": [
{
"matches": [
"http://somedomain.com/*"
],
"css": ["register_quote.css"],
"js": ["jquery-1.3.2.min.js", "register_quote.user.js"]
}
]
}
background.html:http://pastebin.com/0zLArvfA
register_quote.user.js:
// here's the final call, how it's prepared by the content script after all:
chrome.extension.sendRequest({
'action': 'sendAjaxRequest',
'url': "http://somedomain.com/the_script.php"
'dataStr': "is_chrome=Y&ticketid=123123123&user=Vladimir+Mityukov&action=get_quoteids"
}, arg_callback);
PS: забыл упомянуть, есть также следующее сообщение об ошибке в консоли backround.html в:
Error in event handler for 'undefined': TypeError: Cannot read property 'length' of undefined
at setupPageActionEvents (chrome/ExtensionProcessBindings:424:36)
at chrome/ExtensionProcessBindings:1021:5
at [object Object].dispatch (chrome/EventBindings:182:28)
at Object.<anonymous> (chrome/EventBindings:237:25)
Don'e имеют ни малейшего представления, что означает, что это сообщение и какая часть моего код может вызвать это. Сценарии, упомянутые здесь, не мои.
Кажется, я не могу понять, что проблема на первый взгляд, но знаете ли вы, что можете [сейчас] (http://blog.chromium.org/2011/07/chrome-extensions-now-with -more.html) выдает XHR непосредственно из вашего скрипта контента? – ronme
Вы должны запустить отладчик с «Пауза на неперехваченное исключение», чтобы найти код, вызывающий ошибку 'Can not read property 'length. –
> но знаете ли вы, что теперь вы можете отправить XHR прямо из своего сценария контента? Yay, теперь он работает без background.html прокси! – pilat