离子奇怪'访问控制允许来源'问题
你好我建立了我的离子应用程序,它的工作,在很多设备上,然后就在几个小时前我试图在我的手机上运行应用程序,我注意到由于某些原因,数据并未从我的Web服务器返回。于是,我就用ionic serve
,看看有什么是错的我的电脑上运行的应用程序,我注意到了这个错误不停每次我试图让一个$ HTTP请求时弹出:离子奇怪'访问控制允许来源'问题
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100'
我的应用程序已经为运行完美现在几个星期,我不知道可能会改变什么导致这种情况。我使用谷歌金丝雀进行开发,我禁用了网络安全。但即使问题出在我的浏览器上,仍然无法解释为什么该应用程序现在不适用于我的手机。我认为这可能与新的android更新或某事有关。
我最近对我的电脑所做的唯一更改是卸载我的诺顿安全防病毒软件,并安装malwarebytes反恶意软件和反利用。
我在我的服务器上安装了laravel-cors。并设置在默认情况下是这样设置:
<?php
return [
/*
|--------------------------------------------------------------------------
| Laravel CORS
|--------------------------------------------------------------------------
|
| allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
| to accept any value, the allowed methods however have to be explicitly listed.
|
*/
'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedHeaders' => ['*'],
'allowedMethods' => ['GET', 'POST', 'PUT', 'DELETE'],
'exposedHeaders' => [],
'maxAge' => 0,
'hosts' => [],
];
我现在不知道是怎么回事,我使用的是联想A6000 android手机的发展。 Android系统的webview版本是47.0.2526.100,android操作系统版本是5.0.2。
我刚刚安装了应用程序的旧版诺基亚x“android手机”与4.1版的Android版本,它的工作原理。
让我澄清,通过“不工作”我的意思是所有$ http请求,应用程序本身打开并正常工作。
好吧,我的问题就像我在我的文章中描述的那样在一些设备上工作,而不是在某些设备上工作。我不知道为什么。
至于问题的原因,为什么这开始发生,我再也不知道为什么。
在试图尝试解决我用下面的默认设置安装CORS问题:
<?php
return [
/*
|--------------------------------------------------------------------------
| Laravel CORS
|--------------------------------------------------------------------------
|
| allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
| to accept any value, the allowed methods however have to be explicitly listed.
|
*/
'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedHeaders' => ['*'],
'allowedMethods' => ['*'],
'exposedHeaders' => [],
'maxAge' => 0,
'hosts' => [],
];
当以上没有工作,我决定来检查我的服务器,以确保我有头模块安装,因为我注意到“Access-Control-Allow-Origin”头没有被包含在我的服务器的响应头中。
我接着就直接配置我的.htaccess文件中加入这样的:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Credentials false
</IfModule>
但是上面还是没任何区别,至少不是直到我在注释掉全球 CORS中间件我的Kernel.php文件。
它现在完美。 :)
作为速战速决,把普通的PHP头在的index.php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE, PATCH");
这将与任何laravel版工作之初。然后找出laravel和laravel-cors软件包版本,并以适当的方式修复此问题。
当我这样做,现在我只得到一个403禁止的错误,但我应该指出,我说它曾经与我的浏览器和我的手机一起工作,但即使它现在可能无法工作,现在它可以在其他设备上工作。 – user3718908
明星*在某些情况下可能无法正常工作,请尝试指定实际的域名。此外,使用邮递员检查实际的回复,您可以发送与邮递员完全相同的请求,就像您在设备上一样。 – vitr
真实域名?在这种情况下,由于直接从手机发出请求,实际的域名是什么。 – user3718908
把这个添加到你的php文件中(在 Tasos
其实我使用laravel所以我有相当数量的.php文件,试图将其添加到我的主要index.php文件中,并且api返回了500内部服务器错误。 – user3718908
然后我不知道。我有确切的问题,由于使用IP地址,而不是我的服务器的域名,并且该行允许任何起源标题,但是,然后再次即时通讯不使用PHP框架 – Tasos