Javascript.RU

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

Как обойте ограничение на cross domain ajax requests?
Пишу тулзу для броузерной игрушки. Надо передать данные из нее на мой сайт. (никаких private policy violations )

У нее есть механизм добавления скриптов на ее страницы. Хочу добавить свой скрипт, которые соберет с текущей страницы данные и отправит их мне. Если в коде скрипта вызывается метод send AjaxRequest то браузер выдает ошибку NS_ERROR_FAILURE. Т.е я не могу послать реквест сайты, отличному от текущего. Как это обойти? Есть стандартные методы?

Сам придумал такой подход - делаем новое окно с моим сайтом - window.open('mysite.ru'), а внутре него будет скрипт, который обратится к документу исходного окна (window.opener.document). Оттуда я возьму все что надо и отправлю реквестом себе на сервер. Прокатит такой метод?
Ответить с цитированием
  #2 (permalink)  
Старый 17.03.2010, 12:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Rjukan
Прокатит такой метод?
Нет, по тем же причинам.

Отправляйте данные get-запросом.
Ответить с цитированием
  #3 (permalink)  
Старый 17.03.2010, 12:11
Новичок на форуме
Отправить личное сообщение для Rjukan Посмотреть профиль Найти все сообщения от Rjukan
 
Регистрация: 17.03.2010
Сообщений: 4

Сообщение от Kolyaj Посмотреть сообщение
Нет, по тем же причинам.

Отправляйте данные get-запросом.
спасибо за ответ! т.е не смотря на то что location у нового окна будет моим сайтом, все равно запретят? Т.е браузер все это отслеживает?

Проблема еще в том что данных много, т.е они могут не влезть в get запрос. Вообщем задача передать много данных на мой сервер. Как это можно сделать?
Ответить с цитированием
  #4 (permalink)  
Старый 17.03.2010, 12:15
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

создайте динамически POST-форму, завязанную на iframe, и отправляйте ее
Ответить с цитированием
  #5 (permalink)  
Старый 17.03.2010, 12:17
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Вы не сможете получить доступ к окну, в котором открыта страница с другого домена.

Если задача передать много данных без получения ответа, то создавайте динамически невидимую форму с методом post и отправляйте её в невидимый же iframe.
Ответить с цитированием
  #6 (permalink)  
Старый 17.03.2010, 12:34
Новичок на форуме
Отправить личное сообщение для Rjukan Посмотреть профиль Найти все сообщения от Rjukan
 
Регистрация: 17.03.2010
Сообщений: 4

Пожалуйста поясните - где создать форму и где взять iframe? И что делать если ответ все таки нужен?
Ответить с цитированием
  #7 (permalink)  
Старый 17.03.2010, 12:51
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

http://javascript.ru/ajax/cross-domain-scripting
Ответить с цитированием
  #8 (permalink)  
Старый 17.03.2010, 13:06
Новичок на форуме
Отправить личное сообщение для Rjukan Посмотреть профиль Найти все сообщения от Rjukan
 
Регистрация: 17.03.2010
Сообщений: 4

Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41
Ajax ограничение по расширениям фото. t0xas AJAX и COMET 8 13.08.2009 11:29
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12
как дождаться AJAX ответа scuter Общие вопросы Javascript 3 23.03.2008 05:54