【发布时间】:2018-02-07 12:48:40
【问题描述】:
我使用 Laravel 创建了一个 API,并尝试将它与 Ionic 2 项目一起使用
我正在尝试向我的 Laravel API 发出 GET 请求。
当我提出http 请求时
auth/{prodiver}/callback/{userID}/{accessToken}
我收到了这个错误:
Failed to load http://api.url.net/api/auth/facebook/callback/XXXX/MY_TOKEN: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8001' is therefore not allowed access.
我的路线是这样的:
Route::group(['middleware' => ['guest', 'cors']], function() {
Route::get('test', function () {
return response()->json('{dummy.data}', 200);
});
Route::get('auth/{prodiver}/callback/{userID}/{accessToken}', 'SocialAuthController@callback')->middleware('cors')->name('social.auth'); // social auth
});
但是当我尝试使用路由test 的相同代码时,它可以工作并且我得到了数据...
“facebook connect”不是问题,触发了成功回调。
这里是callback() 方法
public function callback($provider, $userID, $accessToken)
{
if ($provider == "facebook"){
$user = $this->createOrGetUser($userID, $accessToken);
auth()->login($user);
return response()->json($user, 200);
}
}
所有其他 http 请求都可以正常工作...
这里是关注的http 请求(在 Ionic 项目中)
let headers = new Headers();
headers.append('Content-Type', 'application/json');
let url = this.baseApiUrl+'auth/facebook/callback/' + userID + '/' + accessToken;
this.http
.get(url, {headers: headers})
.map(res => res.json())
.subscribe(data => {
console.log(data)
}, err => {
this.onError(err);
}
);
我不明白发生了什么,有人有线索吗?我完全厌倦了这个错误:/
非常感谢! :)
【问题讨论】:
-
您提到了
cors中间件。你用什么包,barryvdh/laravel-cors?你配置好了吗? -
是的,我让配置到处都是“*”,用于开发...
-
你可以试试浏览器插件跨域资源共享(CORS)。我也面临这个问题 ionic + laravel 5.2。这对我有用。
-
是的,我可以通过一个CORS浏览器插件,但这不是有点愚蠢吗?这是一个 Ionic 应用程序,我不能要求用户安装它...
标签: php laravel angular ionic2 cors