J'ai une application Web frontale dans Angular et back-end dans Rails. Depuis le front-end, j'ai un code javascript qui émet une requête POST http:
$scope.onSave = function () {
$http.post('http://localhost:3000/documents', { user: $scope.user, formData: $scope.formData }, function (response) {
$scope.isSaved = true;
console.log(response);
if (response.success) {
console.log("It has been successfully saved!")
}
});
}
Et sur le bouton de soumission, j'appelle la fonction ci-dessus:
<button type="submit" class="btn btn-success" ng-click="onSave()">Submit</button>
Ensuite, je reçois une erreur disant
XMLHttpRequest ne peut pas charger http: // localhost: 3000 / documents . La réponse à la demande de contrôle en amont ne passe pas le contrôle d'accès: aucun en-tête «Access-Control-Allow-Origin» n'est présent sur la ressource demandée. L' accès à l' origine ' http: // localhost: 3001 ' n'est donc pas autorisé. La réponse avait le code d'état HTTP 404.
Je sais que je dois autoriser l'accès à plusieurs domaines, mais je ne sais pas comment je peux y parvenir côté serveur Rails.
Ajoutez ceci gem "rack-cors"
à votre Gemfile.
Ajoutez ceci à votre fichier config / application.rb.
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*',
headers: :any,
methods: [:get, :post, :patch, :delete, :put, :options]
end
end
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots