web-dev-qa-db-fra.com

Comment définir la valeur du cookie avec une requête AJAX?

Je veux définir une valeur de cookie sur une demande AJAX mais le code ci-dessous ne fonctionne pas.

$.ajax({
    type: "GET",    
    url: "http://example.com",
    cache: false,
    setCookies: "lkfh89asdhjahska7al446dfg5kgfbfgdhfdbfgcvbcbc dfskljvdfhpl",
    crossDomain: true,
    dataType: 'json',
    success: function (data) {
        alert(data);
    });

Comment puis-je définir des cookies dans l'en-tête?

30
addy

Fondamentalement, les requêtes ajax et synchrone envoient automatiquement les cookies de votre document. Donc, vous devez configurer votre cookie pour documenter, pas pour demander. Cependant, votre demande est interdomaine et les choses sont devenues plus compliquées. En vous basant sur cette réponse , en plus de définir un cookie de document, vous devez autoriser son envoi dans un environnement inter-domaines:

type: "GET",    
url: "http://example.com",
cache: false,
// NO setCookies option available, set cookie to document
//setCookies: "lkfh89asdhjahska7al446dfg5kgfbfgdhfdbfgcvbcbc dfskljvdfhpl",
crossDomain: true,
dataType: 'json',
xhrFields: {
    withCredentials: true
},
success: function (data) {
    alert(data);
});
40
Tommi