Domanda

Ho appena entrato nel mondo di jQuery e abbastanza nuovo per javascript too.I avere un piccolo frammento di javascript come di seguito: -

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

L'aspetto html come di seguito: -

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

Sul lato server che faccio un controllo di intestazione XHR da qualcosa come

 if request.is_xhr: send response else:redirect somewhere

Ora, mentre questo codice funziona bene su Chrome e Opera, su Firefox si sta comportando un po 'strano. Il server non invia indietro il reponse piuttosto fa un redirect. Ciò significa che dice che non v'è alcuna intestazione XHR. Perché questo avvenga, mentre sugli altri due browser che sta funzionando benissimo. (Sto usando Firefox 3.6.12) Aggiornamento-Just aveva uno sguardo alle intestazioni di richiesta di firefox e non trovo X-Data-Con: intestazione XMLHttpRequest, ma è presente in cromo)

È stato utile?

Soluzione

Non tutti i browser inviano le stesse intestazioni, e non si può fare affidamento su di loro per essere coerenti tra i vari browser. Il modo più semplice è quello di non fare affidamento sul browser per inviare qualcosa, ma inviare manualmente qualcosa di te stesso:

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

});

quindi verificare per quella variabile GET sul server invece di un colpo di testa che può o non può essere inviato da un browser.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top