Мне нужно сделать межсайтовый POST запрос с перенаправлением на другой домен. Работаю с ASP.NET платформой.
Проблема в том, что я не хочу отправлять все элементы управления из основной ASP.NET формы на внешний сайт. Думаю создать новую форму динамически через JavaScript и отправить только её.
У меня был похожий случай на проекте - создавал динамическую форму для перехода на платёжный шлюз. главная проблема оказалась в том, что некоторые браузеры блокируют автоматическую отправку форм, особенно если submit() вызывается сразу после создания. Пришлось добавлять небольшую задержку через setTimeout. Еще важный момент - не забудь удалять созданную форму после отправки, а то DOM засоряется. И проверь кодировку данных, иногда специальные символы могут поломать всю передачу.
Основная засада - это CORS политика браузеров, может блокировать запросы между доменами. Еще форма может не отправиться если в ней нет обязательных полей целевого сайта. А ты проверял, может iframe с формой подойдет? Или через скрытые поля в основной форме просто нужные данные передать?
Еще одна неприятность - валидация на стороне ASP.NET может сработать и заблокировать отправку, даже если ты создаешь отдельную форму. У меня было так что Page.Validate() срабатывал для всей страницы. Решил через Page.ClientScript.RegisterStartupScript() - создавал форму в отдельном скрипте который выполняется после полной загрузки. И да, обязательно проверь что target=“_blank” или “_self” правильно установлен, а то может открыться в неожиданном месте.