jquery. не делать запрос xhr! - PullRequest
       12

jquery. не делать запрос xhr!

2 голосов
/ 16 ноября 2010

Я только что вошел в мир jquery и довольно плохо знаком с javascript. У меня есть небольшой фрагмент кода JavaScript, как показано ниже: -

<script type="text/javascript">
 $(function(){
    $('a').click(function(event){
        event.preventDefault();
        $.get('/_add_navigation_',function(response){
        $('#themaincontents').html(response);
        })
   })
</script>

HTML выглядит так: -

 <a href="?toaddnavigation">CLICK Me</a>
 <div id="themaincontents"></div>

На стороне сервера я делаю проверку заголовка xhr чем-то вроде

 if request.is_xhr: send response else:redirect somewhere

Теперь, хотя этот код отлично работает на Chrome и Opera, на Firefox он ведет себя немного странно. Сервер не отправляет ответ, а выполняет перенаправление. Это означает, что там написано, что заголовка xhr нет. Почему это должно происходить, когда в двух других браузерах он работает нормально? (Я использую Firefox 3.6.12) Update-Just посмотрел заголовки запросов firefox, и я не нашел X-Requested-With: заголовок XMLHttpRequest, но он присутствует в chrome)

1 Ответ

0 голосов
/ 16 ноября 2010

Не все браузеры отправляют одинаковые заголовки, и вы не можете полагаться на их согласованность в разных браузерах.Самый простой способ - не полагаться на то, что браузер отправляет что-то, а отправлять что-то вручную:

$.get('url', {
    xhr: 'yes' // add this extra parameter here
}, function(){

});

, а затем проверять эту переменную GET на сервере вместо заголовка, который может или не может быть отправленбраузер.

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