Domanda

Su un sito web che sto costruendo, quando si accede a (perché il database è su un altro server), Io uso json padding per controllare se l'utente come le giuste credenziali.

E 'di lavoro senza problemi (IE7, IE8 & FF), fino a quando ho provato su Chrome, Safari e Opera , dove è un disastro completo.

    $.ajax({
  type: "GET",
  dataType: "jsonp",
  url: "http://someurl.com",
  data: aRequestData,
  cache: false,
  error: function (XMLHttpRequest, textStatus, errorThrown) {
    // typically only one of textStatus or errorThrown
    // will have info
    alert("Error occured textStatus=" + textStatus + " errorThrown=" + errorThrown);
  },
  success: function(data) {
    alert('success');    
  }
});

Chiaro e semplice e funziona nella finestra del browser, tuttavia, con mia grande sorpresa non ha funzionato in Chrome, Safari e Opera, non ha mai avuto l'avviso successo.

Qualcuno sa come risolvere questo problema?

Grazie.

È stato utile?

Soluzione 2

Il problema era rimasto intestazione della pagina HTML, in un (plugin per jQuery Thickbox) "Thickbox" in cui la chiamata ajax è stata fatta!

Firefox o IE non mente le intestazioni ripetute in questo caso, ma il motore WebKit fa!

Ho appena dovuto rimuovere le intestazioni extra, e tutto era tornato sulle piste.

Grazie a tutti!

Altri suggerimenti

Hai provato a utilizzare il costruito in strumenti di sviluppo per Safari e Chrome per verificare se si ottiene una risposta con codice di stato HTTP 200 dalla richiesta?

In Chrome è possibile accedere a questi strumenti dal menu 'Visualizza', selezionare la scheda 'Risorse' per vedere tutte le richieste effettuate. Credo che sarà necessario attivare questi strumenti in qualche impostazione quando si utilizza Safari. alt text

Si potrebbe anche provare a creare versione senza jQuery per escludere errori lì, se non si ottiene lo status 200 dalle chiamate penso jQuery fallirà senza chiamare qualsiasi funzione di errore, la documentazione per l'utilizzo JSONP con jQuery non è molto conciso per quanto riguarda la gestione degli errori.

Creare un file html con una versione modificata del seguente tenore e caricarlo nel vostro browser:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title />
      <script type="text/javascript">
         function ws_results(obj) {
             alert(obj);
         }
      </script>
      <script type="text/javascript" src="http://someurl.com?foo=bar&amp;callback=ws_results" />
   </head>
   <body />
</html>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top