我在laravel创建了一个网站。现在我正在使用Ionic 3制作移动应用程序。
在对laravel后端进行API调用时,我遇到了以下问题。
localhost/:1 XMLHttpRequest cannot load http://xyz.dev/request/login. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access.
假设在laravel的web.php中定义了12条路线。
然后在12个项目中,6个路由用于桌面Web应用程序,剩下的6个路由以/mobile
为前缀,以便我可以在MY API中使用它。
我在通过IONIC和后端的移动应用程序提出任何请求时都面临着这个问题。
请帮助我。
答案 0 :(得分:0)
您可以在laravel项目中添加此项,通过该项目调用apis
将它放在您的filters.php文件
中Route::filter('alloworigin', function()
{
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, X-Request-With');
header('Access-Control-Allow-Credentials: true');
});
通过这个你可以成功调用跨平台api ..
或 你也可以把这个放在你的ajax电话中
$http({method: 'GET', url: 'http://localhost:3000/api/symbol/junk',
headers:{
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, X-Requested-With',
'X-Random-Shit':'123123123'
}})