Надеюсь, это спасет кого-то еще от разочарования. Несколько вопросов вызывали проблему.
- Неверный сертификат на целевом сайте. Они использовали самоподписанный сертификат с example.com как домен.
- Звонок, который я использовал, имел в нем капитал «GET», он должен быть все в нижнем регистре.
Чтобы решить проблему 1, мне пришлось добавить IP-адрес сервера на мои хосты с помощью псевдонима example.com. Это серьезный взлом, но нужно было обойти проблему с недопустимым доменом. Я работаю с владельцами серверов, чтобы иметь правильный сертификат.
Для вызова себя, вот пример, который работает. Я использую другую службу для заголовка auth. Он просто base64s имя пользователя и пароль. Замените AuthorizationService.getCredentials() вашим любимым инструментом base64 (имя пользователя: пароль). Их несколько.
.factory(
'ApplicationDetailService',
[
'$resource', 'AuthorizationService',
function($resource, AuthorizationService) {
return $resource('https://example.com/v1/apps/:id', { id: '@id' },
{
'get' : {
headers: {
Authorization: AuthorizationService.getCredentials()
}
}
}
);
}
]
)
Наконец, поскольку целевой сервер не передавал заголовок Access-Control-Allow-Origin: * в своем ответе. Все современные браузеры, чтобы выровнять, отклоняют возврат AJAX.
Я был в предположении, что это была Угловая вещь, я был неправ. Там есть подключаемый модуль для Chrome, называемый Access-Control-Allow-Origin: *, я пробовал это, он провалился, потому что CORS нуждается в вашем домене в заголовке.
Я нашел флаг для хрома --disable-web-security, который сообщает Chrome игнорировать всю безопасность. FAIR WARNING: Это делает вашу сессию очень неуверенной. Делайте это только для тестовой среды. Просто измените свой ярлык, чтобы передать флаг в качестве параметра chrome.exe.
Со всем этим я смог пройти мимо моей проблемы и продолжить разработку, пока команда сервера не зафиксирует все на своем конце.
Удачи!
Это, скорее всего, проблема с вашим сервером и вообще не связанная с угловым. Когда вы имеете дело с CORS, не забывайте о предвоенных матчах. –
Вопросы CORS задаются много раз в день ... не сложная тема для исследования – charlietfl
Я провел лучшую половину последних двух дней, исследуя ответ на этот пример, каждый из которых я получаю. «Не трудная тема для исследования», правда. Тем не менее, я брошу вам вызов, чтобы привести пример, который работает. –