javascript – Laravel,AngularJS和CORS的路由问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Laravel,AngularJS和CORS的路由问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1888字,纯文字阅读大概需要3分钟。
内容图文
我一直在寻找解决这个问题的方法.
我有一个带有Laravel 4后端实现的AngularJS Web应用程序,如下所示:
http://app.mydomain.io/ = AngularJS web app
http://api.mydomain.io/ = Laravel Back-end
在Laravel的routes.php文件中,我有以下PHP代码来设置Access-Control标头:
header('Access-Control-Allow-Origin: http://app.mydomain.io');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE');
我还有一个登录请求的路由设置,如下所示:
Route::post('/login', function()
{
$email = Input::get('email');
$password = Input::get('password');
if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
return "Success!";
} else {
return "Fail!";
}
});
在AngularJS中,我有一个AuthService,如下所示:
app.factory('AuthService', ['$resource', '$q', '$cookieStore', function($resource, $q, $cookieStore) {
var user = null;
var Service = $resource('//api.mydomain.io/login/', {}, {});
return {
login: function(email, password) {
var deferred = $q.defer();
Service.save({email: email, password: password}, function(response) {
$cookieStore.put('user', JSON.stringify(response));
deferred.resolve(true);
}, function(error) {
deferred.reject(error);
});
return deferred.promise;
}
};
}]);
提出此请求后,我得到以下内容:
XMLHttpRequest cannot load http://api.mydomain.io/login. Invalid HTTP status code 404
如果我将Laravel路由和AngularJS服务更改为使用GET,一切都按预期工作.问题源于AngularJS .save()发出OPTIONS请求而不是POST(我不完全理解为什么).
谁能帮助我找到合适的最佳实践解决方案?
谢谢!
解决方法:
以下解决方案有效:
在filters.php中添加以下内容:
App::before(function($request)
{
if (Request::getMethod() == "OPTIONS") {
$headers = array(
'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Headers'=> 'X-Requested-With, content-type',);
return Response::make('', 200, $headers);
}
});
在routes.php的顶部添加以下内容:
header('Access-Control-Allow-Origin: http://app.mydomain.io');
感谢Google Plus社区!
内容总结
以上是互联网集市为您收集整理的javascript – Laravel,AngularJS和CORS的路由问题全部内容,希望文章能够帮你解决javascript – Laravel,AngularJS和CORS的路由问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。