Когда мы получаем доступ к данным с сервера с помощью angularjs, мы получаем CORSE-Error
Наш код:
var app = angular.module("app", []);
app.controller("Ctrl", function($scope, $http) {
$scope.survey = true;
$scope.question = false;
$http.get("http://localhost:8081/NxtLife_Demo/getsurveyall").success(function(data) {
$scope.surveys = data;
});
});
Контроллер-код:
@RequestMapping(value = "/getsurveyall", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String getSurveyAll() throws JsonProcessingException {
Set<SurveyRecords> records = new HashSet<SurveyRecords>();
records.addAll(surveyService.getSurveyAll());
return new ObjectMapper().writeValueAsString(records);
}
Сообщение об ошибке:
Запрос на перекрестный запрос заблокирован: политика одинакового происхождения запрещает чтение удаленного ресурса по адресу http://localhost: 8081/NxtLife_Demo/getsurveyall. (Причина: заголовок CORS "Access-Control-Allow-Origin" отсутствует).
Эта проблема может быть решена путем внесения следующих изменений в файл web.config нашего WebAPI: URL-адрес ссылки: включение совместного использования ресурсов для разных источников в IIS7
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
Я недавно задал вопрос, в котором я получил подробную информацию о проблемах CORS весной, прочитал ответ Николая: Angular JS и Spring MVC @RestController - статус POST 0