2014-06-07 6 views
25
//Create an Angular Module. 
var newsModule = angular.module('NewsModule', []); 

//Create an Angular Controller. 
newsModule.controller('newsCtrl', ['$scope', '$http', function ($scope, $http) { 
//function retrives POST,UPDATE,DELETE,GET data 

$http.defaults.headers.put = { 
     'Access-Control-Allow-Origin': '*', 
     'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', 
     'Access-Control-Allow-Headers': 'Content-Type, X-Requested-With' 
     }; 
     $http.defaults.useXDomain = true; 

    $scope.throughdata = function(){ 

delete $http.defaults.headers.common['X-Requested-With']; 
     $http.get('http://www.google.com').then(function(data,error){ 
      alert(data); 
      alert(error); 
      $scope.days=data.data; 
      }); 



    } 
} 
]); 

Ale ja się następujące błędyAngular.js Na żądanym zasobie nie ma nagłówka "Access-Control-Allow-Origin". Pochodzenie „null” nie jest zatem dozwolone Dostęp

XMLHttpRequest nie może załadować http://www.google.com/. Na żądanym zasobie nie ma nagłówka "Access-Control-Allow-Origin". Pochodzenie "null" jest zatem niedozwolone.

+1

prostu zastanawiasz się, dlaczego nie używasz [ 'ngResource'] (https://docs.angularjs.org/api/ngResource/service/$resource) dla tych typów zadań. To ma na celu usiąść na '$ http', aby ułatwić pracę. – Droogans

Odpowiedz

46

Access-Control-Allow-Originjest ustawiony na odpowiedź od serwera, nie na żądanie klienta, aby umożliwić klientom z różnych źródeł, aby mieć dostęp do odpowiedzi.

W twoim przypadku, http://www.google.com/ nie zezwala twojemu pochodzeniu na dostęp do odpowiedzi. Dlatego nie możesz go przeczytać.

Aby uzyskać więcej informacji na temat CORS: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

+2

Każdy z obsługą Railsów, zobacz http://stackoverflow.com/questions/17858178/allow-anything-through-cors-policy i https://github.com/cyu/rack-cors – weltschmerz

Powiązane problemy