下面是我的angular服务,我知道它可以工作,因为我在节点服务器上尝试过,但它不能与我的laravel API一起工作。
angular.module('starter')
.service('AuthService', function($q, $http, API_ENDPOINT) {
var register = function(user) {
return $q(function(resolve, reject) {
$http.post(API_ENDPOINT.url + '/signup').then(function(result) {
if (result.data.success) {
resolve(result.data.msg);
} else {
reject(result.data.msg);
}
});
});
};
return {
register: register
};
});
下面是我的laravel代码
Route::group(['prefix'=>'api', 'middleware' => 'cors'], function()
{
Route::post('/signup','UserController@index');
});
下面是我的cors中间件
public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', '*');
}}
最后,这是我的控制器索引函数,它只返回一个json响应
public function index()
{
return response()->json(['success' => 'Received','Done'=>'It works']);
}
我已经用poster测试了它,我得到了预期的响应,但当我从我的ionic应用程序调用它时,我在我的开发工具控制台中收到了一个拒绝连接的错误。
此问题仅发生在您的测试环境中,请安装名为"Allow-Control-Allow-Origin:*"的chrome插件,这样可以解决您的问题。
当你在iOS或Android中模拟应用程序时,一切都正常。
问候;