IOS 12 H5页面无法发送http或https的请求

    最近开发一个项目需要在app中嵌入一个H5页面,这个页面会跨域访问后台的接口。在开发过程中发现,IOS的app的h5页面无法发送http的请求,最后改为https的请求,IOS 13的操作系统可以正常访问后台接口,但是IOS 12仍然不行。

    在google了大量解决方案后总结一下问题的解决方式:

    1)后台nginx进行跨域配置:

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS, DELETE, PUT';
add_header Access-Control-Allow-Headers *;
add_header Access-Control-Allow-Credentials true;

if ($request_method = 'OPTIONS') {
     return 204;
}

    2)IOS 12的beta1版本存在一个bug,跨域的请求,header中不能存放除了常见的请求头之外的参数,比如token之类的。

         参考链接:https://developer.mozilla.org/zh-CN/docs/Glossary/Simple_response_header

    3)IOS 12发送https的post请求时,不能使用application/json格式,不然请求无法发送成功。

 

    主要就是以上几点注意事项,希望能对大家有帮助。

你可能感兴趣的:(IOS 12 H5页面无法发送http或https的请求)