我目前正在使用 WordPress API 构建一些自定义 API, 和从浏览器调用一样效果很好,如下链接:
https://laundrylocker-eg.com/wp-json/wp/v2/delivery-locations
JSON 中的响应没有任何问题, 因此,从 Ionic 应用程序中,我尝试调用此 API 来获取回调此数据,但遇到了此 CORS 问题并尝试修复它。在开发阶段,没有什么比在 Chrome 中禁用 CORS 并使用为所有域启用 CORS 的插件更有效的了。
无法加载https://laundrylocker-eg.com/wp-json/wp/v2/pickup-locations/2018-04-03:对预检请求的响应未通过访问控制检查:“Access- Control-Allow-Origin'标头包含多个值'*、*',但只允许一个。因此,不允许访问源“http://localhost:8100”。 core.js:1350 ERROR HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, ...}
请求网址:https://laundrylocker-eg.com/wp-json/wp/v2/pickup-locations/2018-04-03
请求方式:选项
状态代码:200 正常
远程地址:50.87.248.230:443
推荐人政策:降级时无推荐人
访问控制允许凭据:true
访问控制允许凭据:true
访问控制允许标头:授权、内容类型
访问控制允许标头:授权、内容类型、内容范围、 内容处置、内容描述、访问控制请求方法
访问控制允许方法:POST、GET、OPTIONS、PUT、DELETE
访问控制允许方法:PUT、GET、POST、DELETE、OPTIONS
访问控制允许来源:*
访问控制允许来源:*
访问控制公开标头:X-WP-Total、X-WP-TotalPages
允许:获取
缓存控制:max-age=21600
连接:保持活动状态
内容编码:gzip
内容长度:116
内容类型:application/json;字符集=UTF-8
日期:2018 年 4 月 3 日星期二 12:02:28 GMT
到期时间:2018 年 4 月 3 日星期二 18:02:28 GMT
链接:https://laundrylocker-eg.com/wp-json/; rel =“https://api.w.org/”
服务器:nginx/1.12.2
这并不是说您返回的是值为
*, *
的单个 ACAO 标头 - 而是您返回了重复的 CORS 标头,并且浏览器已将它们合并。
在您的代码中(或您正在使用的包的代码中)的某个位置,CORS 标头被添加了两次。我的猜测是,您以某种方式添加了两个 CORS 启用包或类似的东西,并且它们都添加了 CORS 响应标头...
由于两个
Access-Control-Allow-Headers
和 Access-Control-Allow-Methods
标头的值不同,因此应该很容易搜索它们的添加位置并删除重复项。