2011-01-11 12 views
7

Specifico esplicitamente un POST e non vedo i dati del post nella Richiesta e più sopra specifica che ha OPZIONI.Richiesta JQuery POST che si trasforma in OPZIONI. Perché?

La risposta deve essere un codice HTML che specifica la corrispondenza degli utenti con Query in formato tabella. Sto provando a postare e leggere il codice html per creare una casella di input con completamento automatico.

Questo il codice jQuery:

$.post('https://internal.company.com/data/displayUserList', 
    { Email: "", Name: "%GEORGE%"}, 
    function(responseText, textStatus) { 
     console.log("Response:\n" + responseText + textStatus) 
    } 
); 

Richiesta catturato da FireBug1.6.1 (Firefox)

OPTIONS /data/displayUserList HTTP/1.1 
Host: internal.company.com 
User-Agent: Mozilla/5.0 Firefox/3.6.8 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 115 
Connection: keep-alive 
Origin: null 
Access-Control-Request-Method: POST 
+0

Ci sono molte domande correlate su questo argomento in jQuery su SE. Vedi "Correlati" Le possibili soluzioni sono discusse qui: http://stackoverflow.com/questions/2699277/post-data-to-jsonp – OneWorld

risposta

10

Questo potrebbe accadere in caso di violazione della restrizione same origin policy. L'intestazione della richiesta Access-Control-Request-Method mi fa pensare che sia così. Vedo che specifichi un indirizzo completo https://internal.company.com/data/displayUserList nella tua richiesta di posta. Assicurati che la pagina che ospita questo script provenga anch'essa dallo https://internal.company.com. Il migliore sarebbe utilizzare un indirizzo relativo:

$.post('/data/displayUserList', { Email: "", Name: "%GEORGE%" }, 
    function(responseText, textStatus) { 
     console.log("Response:\n" + responseText + textStatus); 
    } 
); 
+0

Sì. Sto provando a pubblicare l'URL in un'altra pagina web, ma il dominio principale è lo stesso "company.com", controllerò se "document.domain" è lo stesso. Inoltre ho notato che ci sono poche informazioni sui cookie inviati quando "https://internal.company.com/data/displayUserList" viene attivato dal browser. C'è un modo per catturarli e inviarlo con questa richiesta? – hashg

+0

Il protocollo è lo stesso? Si noti che HTTP vs HTTPS viola lo stesso criterio di origine. Per quanto riguarda i cookie, questi verranno automaticamente inviati insieme alla richiesta AJAX se tali cookie sono stati impostati con una proprietà di dominio uguale al dominio principale in modo che possano essere condivisi tra tali domini. –

+0

Sì, il protocollo è HTTPS. Ho notato che i cookie non vengono raccolti a parte il problema OPZIONI. Devo cambiare qualcosa nella chiamata? – hashg

Problemi correlati