【发布时间】:2019-10-10 21:02:22
【问题描述】:
我正在尝试从 ionic android 应用程序中的实时服务器获取 API 数据,但它返回此错误:
Access to XMLHttpRequest at 'https://example.com/api/categories/' from origin 'http://192.168.43.71:8100' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
服务器设置
现在我将 Laravel 用于实时服务器,它提供的 API 是我在 laravel 应用程序中设置 CORS 的方式:
/bootstrap/app.php
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
header('Access-Control-Allow-Headers: *');
// rest of the file
由于我上面的设置,我在 CORS 测试仪上得到了这个结果
离子设置
所以我一直在阅读如何解决这个问题并且遇到了很多类似的解决方案,这就是我添加到我的 ionic.config.json 文件中的内容
"proxies": [
{
"path": "/api/*",
"proxyUrl": "https://example.com/api/"
}
]
获取请求(离子服务)
这是我请求获取方法的方式
apiUrl = 'https://example.com/api/categories/';
constructor(private http: HttpClient) { }
getCategories(): Observable<any> {
return this.http.get(`${this.apiUrl}`).pipe(
map(categories => categories)
);
}
知道我还应该做些什么来解决这个问题吗?
【问题讨论】:
-
@SalmanZafar 和我在截图中得到的结果一样,不是吗?
-
但是 cors 问题应该在服务器端处理,这是更好的方法
标签: javascript angular laravel ionic-framework