Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.10.2012, 15:59
Новичок на форуме
Отправить личное сообщение для rince Посмотреть профиль Найти все сообщения от rince
 
Регистрация: 31.10.2012
Сообщений: 6

Chromium: кросс-доменный запрос от локального скрипта
Реально ли вообще? Пробовал все что нагуглил, ничего не вышло.
Браузер кастомный на основе хромиума, но политика безопасности не тронута.
Скрипт запускается от local://nonexistant-localdir/
upd: на основе awesomium

Последний раз редактировалось rince, 31.10.2012 в 16:23.
Ответить с цитированием
  #2 (permalink)  
Старый 31.10.2012, 16:35
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от rince Посмотреть сообщение
Реально ли вообще? Пробовал все что нагуглил, ничего не вышло.
Браузер кастомный на основе хромиума, но политика безопасности не тронута.
Скрипт запускается от local://nonexistant-localdir/
upd: на основе awesomium
запустить надо, добавив эти 2 флага :
1. --allow-file-access-from-files
2. --disable-web-security
Ответить с цитированием
  #3 (permalink)  
Старый 31.10.2012, 19:10
Новичок на форуме
Отправить личное сообщение для rince Посмотреть профиль Найти все сообщения от rince
 
Регистрация: 31.10.2012
Сообщений: 6

У меня нет возможности запускать этот браузер с флагами.

Случайно нашел решение через <iframe>, если кому интересно:
1. фрейм загружает локальный request.html
2. request.html загружает внешний скрипт (там запрос заместо имени скрипта)
3. хттп-сервер обрабатывает запрос и подсовывает нужный скрипт с ответом
4. фрейм изначально локальный, так что same-origin-policy не брыкается, можно тупо получить его содержимое.

Что интересно, так это когда я пытался использовать window.name-транспорт, загружать локальный файл мне не позволяло, а так норм.

Последний раз редактировалось rince, 31.10.2012 в 19:17.
Ответить с цитированием
  #4 (permalink)  
Старый 31.10.2012, 19:41
Новичок на форуме
Отправить личное сообщение для rince Посмотреть профиль Найти все сообщения от rince
 
Регистрация: 31.10.2012
Сообщений: 6

Таки этот способ работает только если запросы однотипные и статические, при чем для каждого свой реквест-файл. Но можно ли сделать динамические запросы? Как-то отредактировать содержимое фрейма и перезагрузить его с новым?
Ответить с цитированием
  #5 (permalink)  
Старый 02.11.2012, 03:38
Новичок на форуме
Отправить личное сообщение для rince Посмотреть профиль Найти все сообщения от rince
 
Регистрация: 31.10.2012
Сообщений: 6

В итоге сделал так:
function request(str) {	
	var js = document.createElement('script');
	js.setAttribute('type', 'text/javascript');
	js.setAttribute('src', filename);
	js.setAttribute('defer', 'defer');
	document.getElementsByTagName('HEAD')[0].appendChild(js);
}


По сути подключаю новые скрипты, которые генерирует самописный http-сервер, и которые просто записывают нужные данные в нужные переменные.
Потестил, на вид решение отличное, но здравый смысл подсказывает, что что-то не так. Эти скрипты выполняются лишь 1 раз, но куда деваются потом? Не будет ли утечек?
Ответить с цитированием
  #6 (permalink)  
Старый 02.11.2012, 08:28
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

Это называется JSONP.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
где можно подать запрос на разработку скрипта под greasemonkey? Nbb Javascript под браузер 2 19.09.2010 12:19
Кросс доменный запрос mycoding Общие вопросы Javascript 3 23.04.2010 01:40
Кросс доменный запрос, затык в ссессия и cookie mycoding Оффтопик 3 13.01.2010 22:22
Загрузка скрипта с локального комьютера uncher AJAX и COMET 49 04.02.2009 23:12