IONIC请求加上cookie及跨域问题的解决
ionic2 调用后台接口时, 需要解决一个问题, 请求头没有cookie
关键: XMLHttpRequest.withCredentials这个属性
XMLHttpRequest.withCredentials 属性是一个Boolean类型,它指示了是否该使用类似cookies,authorization headers(头部授权)或者TLS客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用withCredentials属性是无效的。
此外,这个指示也会被用做响应中cookies 被忽视的标示。默认值是false。
如果在发送来自其他域的XMLHttpRequest请求之前,未设置withCredentials 为true,那么就不能为它自己的域设置cookie值。而通过设置withCredentials 为true获得的第三方cookies,将会依旧享受同源策略,因此不能被通过document.cookie或者从头部相应请求的脚本等访问。
所以设置了withCredentials 为true 之后, 请求都会默认带上cookie, 不需要其他额外的操作, 唯一要注意的是跨域的问题
解决跨域问题有很多方法
1. 使用nginx
首先下载nginx进行解压缩,修改conf文件夹里的nginx.conf文件,
在浏览器访问的时候可以进入开发模式, 查看请求是否有带cookie
- 使用google的扩展程序cors toggle
使用前重启下浏览器
如果还不行,需要在google浏览器属性里进行修改
右键google浏览器属性,在目标末尾加上 –args –disable-web-security –user-data-dir
需要空格隔开