Mi rendo conto che questa domanda è stata fatta una dozzina o più volte e ogni risposta data indica che sto facendo bene ma forse mi manca qualcosa .
AJAX serve CORS richiesta in questo modo ...
$.ajax({
url: 'someotherdomain.com',
type: 'post',
data: {key: 'value'},
dataType: 'json',
async: false,
crossDomain: true,
beforeSend: function(xhr){
xhr.withCredentials = true;
},
success: function(x, status, xhr){
},
error: function(xhr, status, error){
}
});
PHP serve CORS domande come così ...
header('Access-Control-Max-Age: 1728000');
header('Access-Control-Allow-Origin: http://someotherdomain.com');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-MD5, X-Alt-Referer');
header('Access-Control-Allow-Credentials: true');
header("Content-Type: application/json; charset=utf-8");
Secondo tutta la documentazione fino a quando il 'Ingressi Controllo -L'intestazione lato server'Allow-Credentials 'e l'intestazione lato client' withCredentials = true 'sono impostate La gestione dei cookie di sessione tra i domini dovrebbe essere trasparente. Mi sto perdendo qualcosa?
Risposta :) - Mancano il nome del browser e la versione jQuery dalla domanda ... Controlla anche http://stackoverflow.com/questions/2054316/jquery-sending-credentials-with-cross-domain-posts –
jQuery v1.8.3 e Mozilla Firefox e Google Chrome In realtà sto impostando quella bandiera come si può vedere nel codice sopra –