Междудомейн POST с интегрирана защита

Пускам сайт A и искам да мога да публикувам данни в сайт B, който се хоства на различен поддомейн. Сега имам пълен достъп до A, но изобщо не мога да променя B.

Моите изисквания са:

  • поддържа качване на файлове
  • не опреснява браузъра при POST
  • използва интегрирана защита на Windows
  • работи в IE 7/8 (не е необходимо да поддържа други браузъри)

Какъв е най-добрият начин да постигнете това?

Какво опитах:

В идеалния случай това може да се направи с обикновено AJAX извикване. Настоящият стандарт обаче не поддържа изпращане на двоични данни (поддържа се в стандарта XMLHttpRequest ниво 2, който все още не е внедрен в IE).

Така че следващото най-добро нещо е да POST към скрит <iframe> елемент. Сега опитах това, но сървърът на сайт B не приема данните. Разгледах заявката и единствените несъответствия, които открих, бяха препращащият URL адрес и интегрираното удостоверяване. Може да се наложи препращащият URL адрес да бъде подправен, което не може да бъде постигнато с този метод. Освен това по някаква причина удостоверяването не се договаря. Не съм 100% сигурен защо.

Идеи:

Мисля да създам прокси страница на сървъра, който изпълнявам (сайт A), който препраща заявката към сайт B. Сайт A също използва интегрирана защита. Не виждам нищо лошо в това, но не съм сигурен дали това е най-добрият начин. Ще има ли проблеми с удостоверяването, ако просто препратя заявката?


person tskuzzy    schedule 04.08.2011    source източник
comment
Бих попитал дали и двата домейна са на един сървър. Ако е така, забравете за домейните и поставете файла в директорията, където ви трябва.   -  person Alfonso Rubalcava    schedule 04.08.2011
comment
Не, те са на различни сървъри. Проблемът е, че данните се използват както на сайт А, така и на сайт Б.   -  person tskuzzy    schedule 04.08.2011
comment
и ако качите файла на C? ... (Amazon S3 или нещо подобно?)   -  person Alfonso Rubalcava    schedule 04.08.2011


Отговори (1)


Използването на прокси изглежда е единственото нещо, което може да работи във вашия случай. Ако искате да направите заявка за получаване, тогава това може да се направи с помощта на JSONP при условие, че сървърът поддържа JSONP. За да работи хакът <iframe>, сървърът трябва да изпрати заглавките като

Access-Control-Allow-Origin:* 

което не е така при вас. Така че използването на прокси изглежда решението

person lovesh    schedule 04.08.2011