你好,我在很多设备上建立了我的离子型应用程序,但就在几个小时前,我试图在我的手机上运行这个应用程序,我注意到由于某种原因,我的web服务器上没有返回数据。因此,我试着用ionic serve在我的电脑上运行这个应用程序,看看出了什么问题。每当我试图提出$http请求时,我都注意到这个错误不断弹出:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100'我的应用程序已经运行了几个星期了,我不知道是什么改变了它。我使用谷歌金丝雀进行开发,我已经禁用了网络安全。但即使问题是我的浏览器,这仍然不能解释为什么应用程序不能在我的手机,特别是现在。我在想,这可能与新的android更新有关。
我最近对我的计算机所做的唯一改变是卸载我的norton安全杀毒软件和安装malware字节、防恶意软件和防攻击。
我已经在服务器上安装了龙骨。并将设置设置为默认值,如下所示:
<?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系统webview版本为47.0.2526.100,android操作系统版本为5.0.2。
我刚刚在一个旧的诺基亚x "android手机“上安装了这个应用程序,它的android版本为4.1,而且工作正常。
让我澄清一下,我所说的“不工作”指的是所有的$http请求,应用程序本身打开并正常工作。
发布于 2016-01-29 15:02:13
好吧,我的问题,正如我在我的文章中所描述的,工作在一些设备上,而不是在一些设备上。我不知道为什么。
至于问题的起因,为何会出现这种情况,我再一次也不知道原因。
为了尝试解决这个问题,我安装了以下默认设置的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' => [],
];当上面的内容不起作用时,我决定检查我的服务器,以确保安装了 header 模块,因为我注意到来自服务器的响应头中没有包含“访问控制-允许-原产地”标头。
然后通过添加以下内容,直接配置我的.htaccess文件:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Credentials false
</IfModule>但是,至少直到我在我的Kernel.php文件中注释掉了全局Kernel.php CORS中间件之后,上述仍然没有任何区别。
它现在工作得很好。:)
发布于 2016-01-22 02:07:16
作为快速修复,将普通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的包装版本,并以适当的方式解决这一问题。
https://stackoverflow.com/questions/34937165
复制相似问题