2014-06-07 10 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; 
      }); 



    } 
} 
]); 

Ma io ho sempre seguenti erroriAngular.js Nessuna intestazione 'Access-Control-Allow-Origin' è presente sulla risorsa richiesta. Origine 'null' non è quindi consentito l'accesso

XMLHttpRequest non può caricare http://www.google.com/. Nessuna intestazione 'Access-Control-Allow-Origin' è presente sulla risorsa richiesta. L'origine 'null' non è quindi consentita l'accesso.

+1

Chiedo solo perché non si sta usando [ 'ngResource'] (https://docs.angularjs.org/api/ngResource/service/$resource) per questi tipi di compiti. È pensato per stare sopra a '$ http', per renderlo più facile da lavorare. – Droogans

risposta

46

Access-Control-Allow-Originè impostato sulla risposta dal server, non su richiesta del cliente per consentire ai clienti di diversa origine di avere accesso alla risposta.

Nel tuo caso, http://www.google.com/ non consente l'origine di avere accesso alla risposta. Quindi non puoi leggerlo.

Per ulteriori informazioni su CORS: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

+2

Chiunque abbia un back-end Rails, consultare http://stackoverflow.com/questions/17858178/allow-anything-through-cors-policy e https://github.com/cyu/rack-cors – weltschmerz

Problemi correlati