Ionic framework 离子问题号';访问控制允许原点';

Ionic framework 离子问题号';访问控制允许原点';,ionic-framework,ionic2,Ionic Framework,Ionic2,我正在开发一款爱奥尼亚应用程序。 我的问题是:当我尝试从服务器获取数据时,我得到了以下结果: 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“” 我已尝试将此添加到.htaccess: <ifModule mod_headers.c> Header set Access-Control-Allow-Origin: * </ifModule> 标题集访问控制允许原点:* 这是我

我正在开发一款爱奥尼亚应用程序。 我的问题是:当我尝试从服务器获取数据时,我得到了以下结果:

无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”

我已尝试将此添加到.htaccess:

<ifModule mod_headers.c>
Header set Access-Control-Allow-Origin: *
</ifModule>

标题集访问控制允许原点:*
这是我的api页面(PHP):
header('Access-Control-Allow-Origin:')

但仍然不起作用


$http.get(url).success(函数(响应){…}

将其放在PHP文件的顶部,如:

<?php
header("Access-Control-Allow-Origin: *");
// then your stuff goes here

?>


注意:与PHP header函数的所有用法一样,这必须在从服务器发送任何输出之前完成。

此cors问题在ionic中有一个简单的解决方法

转到您的ionic.config.json(以前是ionic.project)并添加代理,例如:

{
  "name": "proxy-example",
  "app_id": "",
  "proxies": [
    {
      "path": "/api",
      "proxyUrl": "http://cors.api.com/api"
    }
  ]
}
之后,在调用api时使用“/api/”而不是“”

有关更多信息:


这是在使用Angular和Ionic时发现的一个典型错误,出现问题的原因是,当您的应用程序加载到浏览器中时,您的应用程序会加载来自本地地址
来源的所有内容,然后当您希望将任何AJAX请求发送到
localhost:810以外的其他主机时0
从与源站不同的任何点调用请求,它需要一个CORS(跨源资源共享)飞行前请求,以查看它是否可以访问资源

解决方案是使用后端代理,通过此方法,您可以高举某些URL并将其发送到后端服务器。实现非常简单:

1.-修改项目根文件夹中的文件
ionic.config.json

2.-在
ionic.config.json
文件中配置您的代理,假设您的新主机位于

“代理”:[
{
“路径”:“/端点”,
“代理URL”:http://localhost:3000"
}

]
前提:此问题通常只运行ionic Service,或使用ionic作为web应用程序,而不是在ionic作为应用程序中

您可以避免修改项目并使用扩展来禁用CORS:

对于使用chrome进行开发,如下所示:

或者,如果firefox需要它,可以这样做:


IE和Edge很糟糕,因此,对于这些设置,您必须在设置中手动禁用CORS,但仍不工作。我的所有php文件都以标题开头(“访问控制允许源代码:”);你能发布你的API完整URL吗?谢谢,我发现了问题。它是www.domaine.com保存的一个URL,它可以工作。如果你在浏览器上运行时没有获得数据,你需要添加名为Allow Control Allow OriginA的扩展名。不使用ionic serve时,不需要代理。你需要使用实际的URL。这只是美国当您使用ionic serve服务器时,无法使用。当您部署到设备上时,无法使用。正确的答案是在您的服务器上正确实施CORS。ionic应用程序不需要设备上的CORS,它们不是chrome。我尝试过这样做,但现在得到404(未找到)错误。我还需要做些什么吗?@WesinAlves查看你的控制台,看看代理要做什么。也许你在路由中遗漏了什么