Как отправить междоменный запрос POST через JavaScript?

Если вы хотите поддерживать все версии python, вы можете использовать функцию sys.exc_info () следующим образом:

try:
    a = 1/'0'
except (ZeroDivisionError, TypeError):
    e = sys.exc_info()[1]
    print(e.args[0])

(source: http://python3porting.com/noconv. HTML )

546
задан halfer 29 November 2018 в 09:29
поделиться

5 ответов

  1. Создают iFrame,
  2. помещает форму в него со Скрытыми исходными данными,
  3. устанавливает действие формы на URL,
  4. Добавляют, что iframe к документу
  5. отправляют форму

Псевдокод

 var ifr = document.createElement('iframe');
 var frm = document.createElement('form');
 frm.setAttribute("action", "yoururl");
 frm.setAttribute("method", "post");

 // create hidden inputs, add them
 // not shown, but similar (create, setAttribute, appendChild)

 ifr.appendChild(frm);
 document.body.appendChild(ifr);
 frm.submit();

, Вы, вероятно, хотите разработать iframe, быть скрытыми и абсолютно расположенными. Не верная перекрестная регистрация сайта будет позволена браузером, но если так, это - то, как сделать это.

46
ответ дан Lou Franco 29 November 2018 в 09:29
поделиться

High level.... You need to have a cname setup on your server so that other-serve.your-server.com points to other-server.com.

Your page dynamically creates an invisible iframe, which acts as your transport to other-server.com. You then have to communicate via JS from your page to the other-server.com and have call backs that return the data back to your page.

Possible but requires coordination from your-server.com and other-server.com

3
ответ дан 22 November 2019 в 22:18
поделиться

Проверьте функцию post_method в http://taiyolab.com/mbtweet/scripts/twitterapi_call.js - хороший пример для метода iframe, описанного выше.

9
ответ дан 22 November 2019 в 22:18
поделиться
  1. Создайте два скрытых iframe (добавьте "display: none;" в стиль css). Пусть второй iframe указывает на что-то на вашем собственном домене.

  2. Создайте скрытую форму, установите ее метод на "post" с target = ваш первый iframe, и опционально установите enctype на "multipart/form-data" (я думаю, что вы хотите сделать POST, потому что вы хотите отправить многокомпонентные данные, такие как картинки?)

  3. Когда форма будет готова, сделайте submit() формы POST.

  4. Если вы сможете заставить другой домен вернуть javascript, который будет выполнять междоменное взаимодействие с фреймами (http://softwareas.com/cross-domain-communication-with-iframes), то вам повезло, и вы сможете перехватить ответ.

Конечно, если вы хотите использовать свой сервер в качестве прокси, вы можете избежать всего этого. Просто отправьте форму на свой собственный сервер, который передаст запрос на другой сервер (при условии, что другой сервер не настроен на обнаружение расхождений IP-адресов), получит ответ и вернет то, что вы хотите.

6
ответ дан 22 November 2019 в 22:18
поделиться

Должно быть возможно с пользовательской таблицей YQL + JS XHR, взгляните на: http://developer.yahoo.com/yql/guide/index.html

Я использую его для очистки HTML на стороне клиента (js), отлично работает (У меня есть полноценный аудиоплеер, с поиском в интернете / плейлистах / текстах песен / последней информации FM, все клиентские js + YQL)

1
ответ дан 22 November 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: