Я пытаюсь установить cookie браузера, используя вызов jQuery .ajax(), и он не работает.jQuery .ajax() не устанавливает cookie
console.log("before cookies:" + document.cookie);
$.ajax({
dataType: "json",
contentType: "application/json",
url: url,
type: "GET",
processData: false
}).then(function (data) {
console.log("after cookies:" + document.cookie);
});
На стороне сервера, система добавляет Set-Cookie в ответ:
Access-Control-Allow-Headers Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Origin *
Content-Length 63
Content-Type application/json;charset=ISO-8859-1
Expires Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie myApiKey=testkey;Expires=Wed, 20-Aug-2014 18:11:57 GMT;Max-Age=31536000
Выход пуст:
before cookies:
after cookies:
Вот руб. Главная страница находится в одном поддомене, а вызов ajax - другому (api.mydomain.com). Но я думаю, что правильно настроил заголовки CORS на серверной стороне. Он должен работать.
Firebug сообщает, что файл cookie настроен, но каким-то образом он не отображается на внешней странице. Какая уловка?
Скорее всего, Ajax-вызов * устанавливает * файлы cookie, но устанавливает куки для * удаленного домена *, а не вашего домена. – apsillers
Установили ли вы домен cookie на '.mydomain.com'? что сделает его доступным для чтения из любого поддомена –
Если вы задаете «Domain = .mydomain.com» файла cookie, решает вашу проблему, у вас есть дубликат [Can subdomain.example.com установить cookie, который можно прочитать на примере. com?] (http://stackoverflow.com/questions/3089199/can-subdomain-example-com-set-a-cookie-that-can-be-read-by-example-com) (Если это * doesn ' t * решить проблему, тогда Ajax может ввести некоторую сложность, и это может быть не дубликат.) – apsillers