银行卡项目跨域总结
银行卡项目中所请求的银行卡相关接口为https://wallet.iqiyi.com/...和https://pay.iqiyi.com/...
调用情形为任意页面的弹窗,所以其域名是不固定的:主要为http://www.iqiyi.com和http://vip.iqiyi.com以及其他域名。因此存在跨域问题。
方案1:采用jsonp
jsonp是最常用的做法,但是在本项目中不能使用。
原因1:接口不支持jsonp,但不是主要原因,可以让接口方作出修改。
原因2:采用jsonp的话,请求时数据的传输只能采用get,而不支持post,而银行卡数据为敏感数据,所以不能get传输。
方案2:CDN转发
利用CDN转发将银行卡的相关接口转发成http://www.iqiyi.com/...和http://vip.iqiyi.com/...下对应的域名。
优势:解决了跨域问题
劣势:只能解决http://www.iqiyi.com/...和http://vip.iqiyi.com/...页面下的跨域问题,其他页面访问该接口时,会请求不到数据。
Tips:高版本浏览器自带跨域功能,低版本浏览器不行