Почему $ .post () подчиняется политике одного и того же происхождения, но отправка формы с помощью method = 'POST' нормально?

Я работаю над веб-инструментом, который упрощает работу, которую мы выполняем в моем офисе.Инструменты, предоставленные нам нашим партнером, имеют общий вход в систему, который используется на всем этаже, но время ожидания истекает каждые 30 минут, что раздражает, когда приходится снова входить в систему в течение всего дня.

Раньше я создавал скрытый iframe внутри моего инструмента, который входит в него, отправляя скрытую форму при загрузке страницы и продолжая отправлять форму каждые 30 минут, чтобы предотвратить тайм-аут. Затем они могут отправлять поисковые запросы в партнерский инструмент прямо из моего инструмента (через другую видимую форму).

Я хотел бы использовать jQuery $. Post () , чтобы избавиться от скрытого iframe и сделать так, чтобы информация для входа была отправлена ​​только тогда, когда выполняется поиск. Таким образом, он не будет постоянно отправлять запросы, когда он не используется, но вы все равно можете запустить поиск, не беспокоясь о тайм-ауте входа в систему.

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

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

Помимо того факта, что вы действительно должны видеть открывающуюся страницу (если она не находится в скрытом iframe), в чем разница между отправкой параметров через $. Post () и отправкой формы с использованием метод POST? В firebug они выглядят одинаково.Есть ли способ настроить обратный вызов при отправке формы, чтобы он ждал завершения первого запроса перед запуском второго?

16
задан sicks 27 January 2012 в 12:53
поделиться