J'ai cherché partout pour une réponse, mais rien n'a travaillé jusqu'à présent. Toutes les solutions énumérées sur la pile ne sont pas prouvées suffisantes.
Je ne reçois rien dans mon journal Laravel sous forme d'erreurs et je reçois uniquement la norme: p> contrôleur LARAVAVER: P> //App
var app = angular.module('app', [
'ngRoute',
'ngAnimate'
]);
//Config
app.config(['$routeProvider', '$locationProvider', '$animateProvider', function($routeProvider, $locationProvider, $animateProvider) {
$locationProvider.html5Mode(true).hashPrefix('!');
$routeProvider.
when('/', {
templateUrl: 'partials/home.html',
controller: 'PageController'
}).
when('/about', {
templateUrl: 'partials/about.html',
controller: 'AboutController'
}).
when('/contact', {
templateUrl: 'partials/contact.html',
controller: 'ContactController'
}).
when('/blog', {
templateUrl: 'partials/blog.html',
controller: 'PostsController'
}).
when('/blog/post/:postId', {
templateUrl: 'partials/post.html',
controller: 'PostController'
}).
otherwise({
redirectTo: '/'
});
}]);
//Factory
app.factory('Data', function Data($http) {
return {
getPosts: function getPosts() { return $http.get('http://api.domain.dev/post/'); },
getPost: function getPost(id) { return $http.get('http://api.domain.dev/post/' + id); },
addPost: function addPost(data) { return $http.post('http://api.domain.dev/post/', data); },
removePost: function removePost(id) { return $http.delete('http://api.domain.dev/post/'+ id); },
getTags: function getTags() { return $http.get('http://api.domain.dev/tag/'); },
getTag: function getTag(id) { return $http.get('http://api.domain.dev/tag/' + id); },
addTag: function addTag(data) { return $http.post('http://api.domain.dev/tag/', data); },
removeTag: function removeTag(id) { return $http.delete('http://api.domain.dev/tag/'+ id); },
}
});
//Posts Controller
app.controller('PostsController', function PostsController($scope, Data) {
Data.getPosts().success(parsePosts);
function parsePosts(data) {
$scope.posts = data;
}
//AddPost
$scope.newPost = { title: '', content: '', resume: '' };
$scope.addPost = function addPost(){Data.addPost({ title: $scope.newPost.title, content: $scope.newPost.content, resume: $scope.newPost.resume, user_id: $scope.newPost.user_id }).success(postAddSuccess).error(postAddError);}
function postAddSuccess(data) {
$scope.error = null;
$scope.posts.push(data);
$scope.newPost = { title: '', content: '', resume: '' };
}
function postAddError(data) {
$scope.error = data;
}
//RemovePost
$scope.removePost = function removePost(id) {
if (confirm('Do you really want to remove this post?')) {
Data.removePost(id).success(postRemoveSuccess);
}
}
function postRemoveSuccess(data) {
var i = $scope.posts.length;
while (i--) {
if ($scope.posts[i].id == data) {
$scope.post.splice(i, 1);
}
}
}
});
//Post Controller
app.controller('PostController', function PostController($scope, $routeParams, Data) {
Data.getPost($routeParams.id).success(parsePost);
function parsePost(data) {
$scope.post = data;
}
Data.getTags($routeParams.id).success(parsePostsTags);
function parsePostsTags(data) {
$scope.tags = data;
}
$scope.newTag = { tag: '' };
$scope.addTag = function addTag() {
$scope.newTag.post_id = $scope.post.id;
Data.addTag($scope.newTag).success(tagAddSuccess).error(tagAddError);
}
function tagAddSuccess(data) {
$scope.error = null;
$scope.tags.push(data);
$scope.newTag = { tag: '' };
}
function tagAddError(data) {
$scope.error = data;
}
$scope.removeTag = function removeTag(id) {
if (confirm('Do you really want to remove this tag?')) {
Data.removeTag(id).success(tagRemoveSuccess);
}
}
function tagRemoveSuccess(data) {
var i = $scope.tags.length;
while (i--) {
if ($scope.tags[i].id == data) {
$scope.tags.splice(i, 1);
}
}
}
});
//About Controller
app.controller('AboutController', function AboutController($scope, Data) {
});
//Portfolio Controller
app.controller('PortfolioController', function PortfolioController($scope, Data) {
});
//Contact Controller
app.controller('ContactController', function ContactController($scope, Data) {
});
//Page Controller
app.controller('PageController', function PageController($scope, Data) {
});
7 Réponses :
Ajoutez cette ligne avant de retourner Votre code doit être P> en-tête ("Access-Control-Autory-Origin: *"); Code>
public function index()
{
$posts = Post::with('user', 'tags')->get();
header("Access-Control-Allow-Origin: *");
return response()->json($posts);
}
Je vois ce que vous obtenez mais ne fait rien que de retourner la même erreur dans la console de chrome.
@ user2298680 J'ai eu le même problème. Mais j'ai résolu le problème par l'en-tête ("Access-Control-Autory-Origin: *"); ... permet de voir que quelqu'un résoudra votre problème.
Mon API Laravel 5.0 Perte de la session lorsque les applications Angular.js établissent une connexion d'un autre domaine. Ces applications angulaires.js sont hébergées dans d'autres domaines, d'autres serveurs.
Je n'ai pas de bonnes connaissances en laravel.Mais ma suggestion est aux en-têtes de la requête d'accéder à des méthodes de repos (obtenir, poster, mettre, delte) et origine à un domaine spécifique à partir de quel domaine votre demande de préparation de la manière ou Sinon défini sur '*' (il permet à n'importe quel domaine) sur angular js.if que vous utilisez myApp.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
}
]);
Lorsque vous invoquez une demande XHR d'origine croisée, JavaScript déclenche d'abord une demande d'options à l'URL donnée. Si cette méthode n'a pas ajouté dans vos itinéraires, il apparaît alors une page 404 qui est servie sans l'en-tête ACAO, de sorte que la demande de post de béton ne soit pas envoyée, car JavaScript le voit non pas autorisé. P>
Ajouter à public / index.php s'il ne fonctionne pas dans la fonction comme des cloches bleus suggérées p> p>
Ajoutez ces lignes dans votre public / index.php strong>: voir, si cela fonctionne. P> P>
J'ai eu le même problème, mais avec jQuery et j'ai pris des semaines pour avoir une bonne solution.
i mon cas crée un middleware pour définir les en-têtes était la solution parfaite. p>
Créer un middleware Cors : APP \ http \ middleware \ cors.php p> N'oubliez pas de définir l'alias de cors à l'intérieur de l'application \ http \ kernel p> Itinéraires intérieurs Vous pouvez utiliser le middleware avec un groupe ou directement à un itinéraire spécifique, par exemple: p> si quelqu'un a ce problème avec jQuery, je recommande d'utiliser $ .ajax, au lieu de $ ..get, $ .post. Lorsque vous utilisez ces méthodes, jQuery envoie des données à l'aide de XMLHTTPRequest et définissez le type de contenu sur application / x-www-form-urlencoded, il est impossible de changer cela, donc, utilisez AJAX. P> EG: P > $.ajax({
type: 'POST',
url: 'www.foo.bar/api',
contentType: "application/json",
xhrFields: {
// The 'xhrFields' property sets additional fields on the XMLHttpRequest.
// This can be used to set the 'withCredentials' property.
// Set the value to 'true' if you'd like to pass cookies to the server.
// If this is enabled, your server must respond with the header
// 'Access-Control-Allow-Credentials: true'.
withCredentials: true
},
headers: {
// Set any custom headers here.
// If you set any non-simple headers, your server must include these
// headers in the 'Access-Control-Allow-Headers' response header.
'Accept': 'application/json'
},
data: '{"some":"json data"}',
success: function (data) {
console.log('AJAX version');
console.log("Works!")
},
});
Encore une chose. Si dans votre contrôleur, vous retournez une nouvelle réponse, resnospose :: json () code>,
réponse :: make () code>, etc. Vous devez définir à nouveau des en-têtes (troisième argument) Étant donné que les en-têtes fixés par middleware ne passent pas à une nouvelle instance de réponse.
Dans mon cas, quand j'ai changé de cruréalité: fidèle à fausse ses œuvres
Qu'est-ce que j'ai fait mais pas sûr si c'est la meilleure solution, mais il n'y a pas de cors avec celui-ci
1.Build l'angulaire utilisant normalement 2.Move Le contenu de 3.then Utilisez ce code simple dans Toutes les demandes viennent à Laravel et si elle peut attraper la demande avec un itinéraire, cet itinéraire fonctionnera autrement. Angulaire p> p> NG Build --Prod Code> P> P> P> P> P>
angulaire / dist code> sur
laravel / public code> p>
Laravel / itinéraires / web.php code> p>
Avez-vous essayez-vous Emballage Laravel-Cors pour envoyer des en-têtes de partage des ressources d'origine croisée?