Ionic framework 离子问题号';访问控制允许原点';
我正在开发一款爱奥尼亚应用程序。 我的问题是:当我尝试从服务器获取数据时,我得到了以下结果: 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“” 我已尝试将此添加到.htaccess: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> 标题集访问控制允许原点:* 这是我
<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查看你的控制台,看看代理要做什么。也许你在路由中遗漏了什么