2012-05-31 12 views
9

Ho un'applicazione Sencha Touch che chiama il mio servizio web tra domini utilizzando Ext.Ajax.request. Dal momento che ho creato il servizio web, ho abilitato l'accesso alle richieste tra domini. Tuttavia Ext invia una richiesta OPTIONS prima come una stretta di mano quindi una richiesta GET mentre jQuery.ajax invia semplicemente una richiesta GET. A causa di circostanze al di fuori del mio controllo, il provider di hosting non supporta le richieste OPTIONS. Al momento sono ricorso a jQuery per richieste Ajax e Sencha Touch per il resto dell'applicazione. Non voglio davvero dover caricare la libreria jQuery solo per questo.Ext.Ajax.request che invia le richieste OPTIONS cross-domain quando jQuery.ajax invia GET

Qualcuno può far luce sul motivo per cui Ext.Ajax invia una richiesta OPTIONS e c'è un modo per farlo semplicemente inviare un GET?

Grazie

+0

mio problema troppo! qualche fortuna a trovare la soluzione? @ CL4NCY – Ocelot

risposta

11

Nel Ext.Ajax.request config, impostare useDefaultXhrHeader false. Ciò impedirà la richiesta extra di OPZIONI.

Secondo the docs:

Impostare questo su false per non inviare l'intestazione di default XHR (X-richiesta-Con) con ogni richiesta. Questo dovrebbe essere impostato su false quando si effettuano richieste CORS (interdominio).

La mia esperienza è che la chiamata OPTIONS è scomparsa, ho ottenuto il verbo POST mi aspettavo.

5

Set

Ext.Ajax.useDefaultXhrHeader = false

Prima

Ext.Ajax.request({ 
     url: 'www.yourUrl.com', 
     ..... 
    }); 
2

Oppure si può impostare con metodo come questo:

Ext.Ajax.setUseDefaultXhrHeader(false); 
Ext.Ajax.request({ 
        url: "http://yoururl.domain", 
        success: function(response, eOpt) { 
         console.log('success'); 
        }, 
        failure: function(response, eOpt) { 
         console.log('error'); 
        } 
       }); 
Problemi correlati