У меня есть интересная проблема, возникающая в моем приложении angularjs. Когда я вхожу в систему, все запросы шаблонов в угловом исполнении, которые были сделаны на Amazon S3, перестают работать и возвращают 400 Bad Request. Они полностью работают, прежде чем вы входите в систему. Единственное, что должно измениться при входе в систему, - это маркер json, который отправляется в заголовках, чтобы проверить, что кто-то зарегистрировался. Мои мысли, возможно, перехватчик, который отправляет jwt в заголовках, каким-то образом затрагивает CORS на Amazon S3. Кажется странным.Angularjs с использованием JWT перерывов CORS для Amazon S3 при входе в систему
Вот код перехватчика:
.factory('TokenInterceptor', function ($q, $window) {
return {
request: function (config) {
config.headers = config.headers || {};
if ($window.sessionStorage.token) {
config.headers.Authorization = 'Bearer ' + $window.sessionStorage.token;
}
return config;
},
response: function (response) {
return response || $q.when(response);
}
};
});
EDIT: Это дает мне ошибку Access Origin, но я изменил мой файл CORS на Амазонке, и это, казалось, изменить к ошибке 400 в настоящее время. Мой CORS файл выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
EDIT: В том числе образец ответа при попытке получить доступ к файлу после входа в систему:
Remote Address:1.2.3.4:443
Request URL:https://s3.amazonaws.com/bucket/path/to/file/template.html
Request Method:GET
Status Code:400 Bad Request
Request Headersview source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-GB,en;q=0.8,en-US;q=0.6,fr;q=0.4,es;q=0.2
Authorization:Bearer xxxXXXxxxXXXxxXXxxxXXXXxxXXxx
Connection:keep-alive
Host:s3.amazonaws.com
Origin:http://domain.com
Referer:http://domain.com/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
Response Headersview source
Access-Control-Allow-Methods:GET
Access-Control-Allow-Origin:*
Access-Control-Max-Age:3000
Connection:close
Content-Type:application/xml
Date:Sun, 21 Dec 2014 01:49:16 GMT
Server:AmazonS3
Transfer-Encoding:chunked
Vary:Origin, Access-Control-Request-Headers, Access-Control-Request-Method
x-amz-id-2:xxxXXXxxxXXXxx
x-amz-request-id:xxxXXXxxxXXxxxXXXxx
изменен * AllowedHeader> на Авторизация AllowedHeader> –
@pankajparkar: Я пробовал это, но это не решило проблему. – codephobia