JQuery: переменные формы POST и получить ответ HTTP? (междоменный)

Мне нужно отправить веб-форму в онлайн-службу, которая возвращает HTTP 200, если все прошло хорошо, и что-то другое, если форма была отправлена ​​неправильно. Я хочу, чтобы с помощью AJAX появлялись красивые ошибки, чтобы информировать моих пользователей о том, что они отправили беспорядочную информацию.

Итак, я начал делать то, что делал раньше, о чем упоминается в this вопрос, но поскольку форма отправляется в другой домен, помимо моего собственного (междоменный), не потребовалось много времени, чтобы узнать, что Firefox отправил запрос OPTIONS вместо ожидаемого POST.

Поскольку эти параметры были недоступны, я продолжил поиск и узнал о функции JSONP, которую я обнаружил не поддерживает POST для междоменных запросов.

Ясно, что после этого моя голова вот-вот взорвется. Я что-то упустил?


person Industrial    schedule 24.11.2010    source источник
comment
возможный дубликат Как отправить перекрестный POST-запрос домена через JavaScript?   -  person Piskvor left the building    schedule 25.11.2010


Ответы (1)


Вы можете посмотреть window.postMessage в html5. Есть даже плагин jQuery под названием jQuery postMessage, который пытается обеспечить поддержку старых браузеров (через скрытые кадры iFrames), которые еще не поддерживают его.

Однако, как правило, публикация в отдельный домен через ajax не поддерживается. Другая (возможно, более простая) альтернатива - просто создать прокси-скрипт на вашем собственном сервере, который принимает данные ajax и выполняет POST через curl для вашей внешней службы и просто возвращает код результата обратно вашему собственному вызову ajax. Он не страдает междоменным ограничением, так как вы публикуете сообщения в своем собственном домене.

person markquezada    schedule 24.11.2010