Ошибка Cors в AngularJS

У меня есть сомнение, который пробуя получать решение, но однако он у меня не остался совсем ясным, у меня есть приложение, сделанное в AngularJS, которое завершал бы JSON внешнего шрифта, деталь - следующая я использую услугу $resource чтобы реализовывать get однако он дает мне ошибку cors:

Error Cors

Однако, когда я использую Jquery с функциями $.ajax или $.getJSON он не дает мне ошибку Cors? Из чего проистекает это поведение?

Я оставляю screenshots кода:

Código fuente Recurso

Request с ajax Jquery дай 200: Request con el ajax

Мой вопрос: Потому что с функциями ajax и getJSON Jquery он не производит ошибку Cors и с услугой $resource да?

2
задан 07.01.2017, 01:25
0 ответов

Вместо того, чтобы использовать $resource, ты был бы должен использовать $http.

$resource: Это "фабрика", которая верила бы в объект ресурса, который позволяет работать с источниками данных RESTful стороны сервера.

$http: Это услуга, которая облегчает коммуникацию с удаленными серверами HTTP путь XMLHttpRequest или JSONP.

endpoint https://s3.amazonaws.com/dolartoday/data.json, это не одна API REST, это просто файл JSON, из-за чего он не выносит метод OPTIONS.

Это пробовать делать это так:

(function(angular) {
  'use strict';
  
  angular.module('httpExample', [])
  .controller('FetchController', ['$scope', '$http', '$templateCache',
    function($scope, $http, $templateCache) {
      $scope.method = 'GET';
      $scope.url = 'https://s3.amazonaws.com/dolartoday/data.json';

      $scope.fetch = function() {
        $scope.code = null;
        $scope.response = null;

        $http({method: $scope.method, url: $scope.url, cache: $templateCache}).
          then(function(response) {
            $scope.status = response.status;
            $scope.data = response.data;
          }, function(response) {
            $scope.data = response.data || 'Request failed';
            $scope.status = response.status;
        });
      };
    }]);
})(window.angular);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="httpExample">
  <div ng-controller="FetchController">
    <input type="text" ng-model="url" />
    <button id="fetchbtn" ng-click="fetch()">fetch</button><br/>
    <pre>http status code: {{status}}</pre>
    <pre>http response data: {{data}}</pre>
  </div>
</div>
2
ответ дан 03.12.2019, 17:51
  • 1
    Превосходным, спасибо за твой ответ я у себя остаюсь весь má s просвет я должен погружаться в концепции rest, и как работают mé все, и с $http funcionó в perfecció n. –  06.01.2017, 22:15

Теги

Похожие вопросы