JQuery AJAX пост вопрос заголовков (я думаю) - PullRequest
0 голосов
/ 19 августа 2010

Я думаю, что это легко, но я не уверен, каков правильный синтаксис. Я публикую форму через JQuery AJAX - вы знаете,

    $j.ajax({ 
    type: "post", etc.....

Но мне нужно убедиться, что форма способна обрабатываться, если Java отключена. Есть ли «заголовок» в посылке ajax, который можно использовать для идентификации его как прикрепленного к обычному посту, чтобы по завершении, будь то ajaxed или обычный пост php, я мог вернуться на страницу отправки. Если не ajaxed, я могу использовать if($update): header('location: ...'); endif;, но если я использую это с запросом ajax, это останавливает функцию успеха ajax. Надежда имеет смысл

Ответы [ 4 ]

1 голос
/ 19 августа 2010

Да, jQuery устанавливает пользовательский заголовок при выполнении запроса AJAX:

X-Requested-With : XMLHttpRequest

РЕДАКТИРОВАТЬ PHP-код русской стороны сервера:

define('IS_AJAX_REQUEST', isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
    strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
if( IS_AJAX_REQUEST )
    { //This is an AJAX request, do AJAX specific stuff }
else
    { //This is not an AJAX request }
0 голосов
/ 19 августа 2010

Обычный способ обработки запросов формы ajax - написать форму для работы без какого-либо JS, поэтому, если вы находитесь в простом php-файле, вы начинаете с

<?php
if(count($_POST) > 0) {
    //process form entries
} else {
    //output form
}
?>

Затем вы бы добавили jQuery, чтобы перехватить щелчок, чтобы отправить, так что

$('input[type=submit]').live("click", function(e) {
     e.preventDefault();

     //ajax post here

     //IE
     return false;
});
0 голосов
/ 19 августа 2010

Вам придется многое сделать или обойти, но вы можете использовать комбинацию <noscript> и JavaScript-кода, чтобы получить то, что вам нужно.

См. Часто задаваемые вопросы о WWW: как мне обнаружить JavaScript в браузере пользователя?

Надеюсь, это поможет вам начать.

0 голосов
/ 19 августа 2010

Не совсем знаете о заголовках, но, возможно, более простое решение - просто вызвать URL страницы обработки с дополнительным параметром, когда вы делаете это в контексте ajax?

СтраницаЗатем можно просто проверить, присутствует ли параметр или нет, и предпринять соответствующие действия в зависимости от него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...