2016-06-25 2 views
0

Pouvez-vous s'il vous plaît me dire où je suis allé mal et est-il quelque chose que je doit ajouter chercher le JSON à partir du site herokuComment se débarrasser de la demande Cross-origin Bloqué: dans des rails 4

config .ru

require ::File.expand_path('../config/environment', __FILE__) 

run Rails.application 
use Rack::Cors do 
allow do 
origins 'localhost:3000', '127.0.0.1:3000', 'http://stark-anchorage-86169.herokuapp.com/ages/ getfortest', /\Ahttp:\/\/192\.168\.0\.\d{1,3}(:\d+)?\z/ 


resource '/file/list_all/', :headers => 'x-domain-token' 
resource '/file/at/*', 
    :methods => [:get, :post, :delete, :put, :patch, :options, :head], 
    :headers => 'x-domain-token', 
    :expose => ['Some-Custom-Response-Header'], 
    :max_age => 600 

end 

allow do 
origins '*' 
resource '/public/*', :headers => :any, :methods => :get 
end 
end 

config/application.rb

Bundler.require(*Rails.groups) 

module AppV11 
class Application < Rails::Applications. 



config.active_record.raise_in_transactional_callbacks = true 

config.middleware.insert_before 0, "Rack::Cors" do 
    allow do 
    origins '*' 
    resource '*', :headers => :any, :methods => [:get, :post, :options] 
    end 
end 
end 

end 

Mon contrôleur ressemble à ceci avec quelques aides ci-dessous

before_filter :set_access_control_headers 

def set_access_control_headers 
headers['Access-Control-Allow-Origin'] = 'http://staranchorage-   86169.herokuapp.com/ages/getfortest' 
end 

Les AngularJS partie:

function getpost() 
{ 
    console.log("INSIDE GETPOST"); 
    $http.get('http://stark-anchorage-86169.herokuapp.com/ages/getfortest') 
    .success(function(response) 
      { 
     console.log("INSIDE RESPONSE "+ response); 
     $scope.demogetpost = response.data; 
     console.log($scope.demogetpost); 
     console.log("NOT PRINTING"); 
    }) 
    return $scope.demogetpost; 
} 
+0

Manquant une variété d'en-têtes qui sont facilement trouvés en recherchant 'Access-Control-Allow-Origin'. Je ne connais pas les rails mais je suis sûr qu'il doit y avoir des gemmes pour cela – charlietfl

+0

Merci cela a fonctionné @charlietfl –

+0

Suggérez-vous d'ajouter votre propre réponse quant à la façon dont vous avez résolu cela. Pourrait aider les autres à l'avenir – charlietfl

Répondre

0

J'ai ouverture dans un nouvel onglet et c'est la raison pour laquelle je suis arrivé la demande Cross-Origin bloqué. J'ai également ajouté des en-têtes pour Access-Control-Allow-Origin.