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, время: 17:14. |