CORS 适用于 Chrome 但不适用于 Safari 或 iOS 设备
CORS works on Chrome but not on Safari or on iOS device
CORS 适用于 Chrome 但不适用于 Safari 或 iOS 设备(IONIC APP)
我试图在我的请求中添加一些 headers
但没有用
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT',
'Accept': 'application/json',
'content-type': 'application/json'
我也尝试在 Safari 中禁用 CROSS-ORIGIN 限制,它运行良好但在 IOS 模拟器或设备
那么,如何解决?
Ionic 应用程序(android、ios 和 ionic serve)在本地主机上运行。默认情况下 web api 不允许来自不同来源的请求。
所以你有 3 个选择:
您可以在应用的后端代码中添加以下代码。
header('Access-Control-Allow-Origin: *');
希望对你有帮助。
最近我遇到了同样的问题,但我通过对 android 和 ios 设备使用 cordova-plugin-advanced-http
解决了它。
安装
ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http
使用
import { HTTP } from '@ionic-native/http/ngx';
constructor(private http: HTTP) {}
...
this.http.get('http://ionic.io', {}, {})
.then(data => {
console.log(data.status);
console.log(data.data); // data received by server
console.log(data.headers);
})
.catch(error => {
console.log(error.status);
console.log(error.error); // error message as string
console.log(error.headers);
});
更多详情:见official link
我通过在服务器端配置
中添加 Access-Control-Allow-Headers:"*"
并用我的自定义 headers 替换 * 来实现
CORS 适用于 Chrome 但不适用于 Safari 或 iOS 设备(IONIC APP) 我试图在我的请求中添加一些 headers 但没有用
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT',
'Accept': 'application/json',
'content-type': 'application/json'
我也尝试在 Safari 中禁用 CROSS-ORIGIN 限制,它运行良好但在 IOS 模拟器或设备
那么,如何解决?
Ionic 应用程序(android、ios 和 ionic serve)在本地主机上运行。默认情况下 web api 不允许来自不同来源的请求。
所以你有 3 个选择:
您可以在应用的后端代码中添加以下代码。 header('Access-Control-Allow-Origin: *'); 希望对你有帮助。
最近我遇到了同样的问题,但我通过对 android 和 ios 设备使用 cordova-plugin-advanced-http
解决了它。
安装
ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http
使用
import { HTTP } from '@ionic-native/http/ngx';
constructor(private http: HTTP) {}
...
this.http.get('http://ionic.io', {}, {})
.then(data => {
console.log(data.status);
console.log(data.data); // data received by server
console.log(data.headers);
})
.catch(error => {
console.log(error.status);
console.log(error.error); // error message as string
console.log(error.headers);
});
更多详情:见official link
我通过在服务器端配置
中添加Access-Control-Allow-Headers:"*"
并用我的自定义 headers 替换 * 来实现