CORS 错误
什么是 CORS?
跨域资源共享(CORS) 是一种机制,浏览器和 WebView(例如为 Capacitor 和 Cordova 提供支持的 WebView)出于安全原因使用它来限制脚本向不同源中的资源发出 HTTP 和 HTTPS 请求,主要是为了保护用户数据并防止可能危及应用程序的攻击。
为了了解外部源是否支持 CORS,服务器必须发送一些特殊的头部以便浏览器允许这些请求。
源是提供 Ionic 应用程序或外部资源的协议、域名和端口的组合。例如,在 Capacitor 中运行的应用程序将 capacitor://localhost(iOS)或 http://localhost(Android)作为其源。
当提供应用程序的源(例如使用 ionic serve 时的 http://localhost:8100)与所请求资源的源(例如 https://api.example.com)不匹配时,浏览器的同源策略生效,并且请求需要 CORS 才能发出。
在 Web 应用程序中,当发起跨域请求但服务器未在响应中返回必需的头部(未启用 CORS)时,就会发生 CORS 错误:
备注
XMLHttpRequest 无法加载 https://api.example.com。请求的资源上没有 'Access-Control-Allow-Origin' 头部。因此不允许源 'http://localhost:8100' 访问。