jQuery Form и XMLHttpRequest
использую
jQuery v1.4.2 jQuery Tools 1.2.4 Overlay Form v2.47 с помощью оверлей создаю окнок, туза загружаю данные, при запросе к пхп скрипту заголовок $_SERVER['HTTP_X_REQUESTED_WITH'] проставляется нормально при отправке формы данные уходят, но заголовок не ставится, и поэтому отдается все страница, включая шапку и тп ---- решение одно есть это отдельный обработчик для ajax но это не выход, --- я так понимаю не у меня одного подобная проблема возникала может кто что подскажет --- отладчиком проверял ответ не приходит увы, а в первом случае при запросе страницы заголовок есть... --- я использую не iframe вся обработка в диве <script type="text/javascript"> $(document).ready(function(){ // готовим объект var options = { target: "#modalbox", url: "{action}", beforeSubmit: showRequest, // функция, вызываемая перед передачей success: showResponse, // функция, вызываемая при получении ответа //type: "post", // get or post, override for forms method attribute //dataType: "html", // xml, script, or json (expected server response type) timeout: 15000, }; // привязываем событие submit к форме $("#userform").submit(function() { $(this).ajaxSubmit(options); // !!! Важно !!! // всегда возвращаем false, чтобы предупредить стандартные // действия браузера (переход на страницу form.php) return false; }); }); // bind form using ajaxForm //$("#userform").ajaxForm(options); //}); function showRequest(formData, jqForm, options) { // formData - массив; здесь используется $.param чтобы преобразовать его в строку для вывода в alert(), // (только в демонстрационных целях), но в самом плагине jQuery Form это совершается автоматически. var queryString = $.param(formData); // jqForm это jQuery объект, содержащий элементы формы. // Для доступа к элементам формы используйте // var formElement = jqForm[0]; alert(\'Вот что мы передаем: \n\n\' + queryString); // здесь можно вернуть false чтобы запретить отправку формы; // любое отличное от fals значение разрешит отправку формы. return true; } // вызов после получения ответа function showResponse3(data) { // data is the json object returned from the server alert(data.message); } function showResponse2(responseXML) { // responseXML is the XML document returned by the server; we use // jQuery to extract the content of the message node from the XML doc var message = $(\'message\', responseXML).text(); alert(message); } function showResponse(responseText, statusText) { // для обычного html ответа, первый аргумент - свойство responseText // объекта XMLHttpRequest // если применяется метод ajaxSubmit (или ajaxForm) с использованием опции dataType // установленной в xml, первый аргумент - свойство responseXML // объекта XMLHttpRequest // если применяется метод ajaxSubmit (или ajaxForm) с использованием опции dataType // установленной в json, первый аргумент - объек json, возвращенный сервером. alert(\'Статус ответа сервера: \' + statusText + \'\n\nТекст ответа сервера: \n\' + responseText + \'\n\nЦелевой элемент div обновиться этим текстом.\'); } </script> |
|
Часовой пояс GMT +3, время: 07:48. |