AngularJS и базовая HTTP-аутентификация

У меня есть приложение Angular, которое обращается к тестовой базе данных. Это работало раньше, но в выходные мне больше не разрешают доступ. Я не вносил изменений в код Angular. Вот в чем проблема.

Чтобы получить доступ к тестовой базе данных, мне нужно ввести имя пользователя и пароль, поскольку база данных использует базовую HTTP-аутентификацию. Мой ресурс выглядит так.

angular.module("CoolApp.misc")

.factory('Ad', ad)

ad.$inject = ['$resource'];

function ad($resource) {
  return $resource('http://username:[email protected]/api/advertisement.json');
}

Теперь, когда я бегу

Ad.get({}, function(resp) {}, function(badresp) {console.log(badresp)})

консоль выдает объект badresp. Я заглядываю в раздел заголовков моей конфигурации и замечаю это как URL-адрес...

url: "http://[email protected]/api/advertisement.json"

Подождите, я установил пароль в качестве URL-адреса. Почему заголовок не предоставляет мне пароль? Поэтому я получаю No 'Access-Control-Allow-Origin' header is present on the requested resource. в своей консоли?

Для удовольствия вот моя конфигурация http

angular.module("CoolApp")

.config(config);

config.$inject = ["$httpProvider"];

function config($httpProvider) {
  $httpProvider.defaults.useXDomain = true;
  //$httpProvider.defaults.withCredentials = true;
  delete $httpProvider.defaults.headers.common["X-Requested-With"];
  $httpProvider.defaults.headers.common["Accept"] = "application/json";
  $httpProvider.defaults.headers.common["Content-Type"] = "application/json";
}

У меня вопрос, что с этим не так и как это исправить?


person thank_you    schedule 23.06.2015    source источник
comment
Есть ли у вас доступ для внесения изменений в API? Кроме того, просто любопытно, почему вы размещаете имя пользователя и пароль на видном месте во внешнем интерфейсе? Так устроен API? Может быть, стоит проверить угрозу безопасности (я знаю, это не связано с вопросом).   -  person Josh Beam    schedule 23.06.2015


Ответы (1)


No 'Access-Control-Allow-Origin' header is present on the requested resource. Если вы говорите, что не меняли интерфейсный код с тех пор, как в последний раз к нему прикасались, то это может означать только то, что что-то изменилось на сервере... Судя по предоставленной вами ошибке, это выглядит довольно явный случай, когда кто-то либо удаляет Access-Control-Allow-Origin на сервере, либо ограничивает происхождение.

Вы не можете изменить это на клиенте; что должно измениться на сервере.

person Josh Beam    schedule 23.06.2015