AngularJS withCredentials Not Sending

В AngularJS у меня есть мой Restful API в субдомене, но у меня проблема с тем, что cookie / session не используется в доменах. Для Углового я делаю это:

app.config(['$httpProvider', function($httpProvider) { $httpProvider.defaults.useXDomain = true; $httpProvider.defaults.withCredentials = true; delete $httpProvider.defaults.headers.common['X-Requested-With']; }]); 

Также, когда я делаю запрос с $ http, я делаю

 var object = {}; object.url = '/example' object.withCredentials = true; $http(object).success(object.success).error(object.error); 

И на моей стороне сервера у меня есть:

 if($_SERVER['REQUEST_METHOD']=='OPTIONS') { if(isset($_SERVER['HTTP_X_FOWARDED_HOST']) && !empty($_SERVER['HTTP_X_FOWARDED_HOST'])) { $origin=$_SERVER['HTTP_X_FOWARDED_HOST']; } else { $origin=$_SERVER['HTTP_ORIGIN']; } if(isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']) && ($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']=='POST' || $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']=='DELETE' || $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']=='PUT')) { header('Access-Control-Allow-Origin: '.$origin); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Allow-Headers: *,X-Requested-With,Content-Type'); //header('Access-Control-Allow-Headers: Content-Type'); header('Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE, PUT'); // http://stackoverflow.com/a/7605119/578667 header('Access-Control-Max-Age: 86400'); } } 

Теперь я вижу, что сервер говорит, что он разрешает учетные данные, но не отправляется в запросе опций. Снимок экрана ниже.

введите описание изображения здесь Что я делаю не так?

Related of "AngularJS withCredentials Not Sending"

По умолчанию учетные данные НЕ отправляются в запросе OPORS перед полетом. См. Здесь . См. Также этот ответ . Учетные данные будут отправлены по вашему фактическому запросу.

Кроме того, использование заголовковXDomain и X-Request-With на самом деле не используется в текущих версиях угловых, поэтому эти строки ничего не делают в вашей конфигурации $ httpProvider. Все взаимодействие с CORS обрабатывается самим браузером и вашим сервером.

В целом для правильного внедрения CORS ваш сервер не должен запрашивать учетные данные в предпродажном запросе. (Обратите внимание, что некоторые браузеры отправляют их в любом случае, но не должны.) Это связано с тем, что запрос OPTIONS считается «безопасным» и никогда не должен содержать никакой конфиденциальной информации.

Возможно, ваша проблема связана с файлами cookie, которые вы пытаетесь использовать в разных доменах. Какие файлы cookie вы пытаетесь отправить где?