Вопрос

Я только что вошел в мир 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)----взглянул на заголовки запроса Firefox, и я не нахожу x-requested-with: xmlhttprequest, но он присутствует в Chrome)

Это было полезно?

Решение

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

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

});

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top