跨域由浏览器同源(协议、域名、端口号)策略造成。
目前解决方法主要是两类
1.跨域资源共享CORS。
浏览器会自动处理,主要是需要服务端给响应头配置信息Access-Control-Allow-Origin和Access-Control-Allow-Methods这两个字段,详细信息可看跨域资源详解。
2.本地服务代理。
通过本地服务,前端本地开发一般为node服务,或者本地起nginx服务代理。原理是给浏览器发向服务端的请求和响应做一层代理转化让资源传递符合同源策略,先将发向服务端的请求源设置为服务端的同源地址,后将服务端的响应源改为本地服务源。postman就是通过这种方式解决跨域的。
至于jsonp,是非正式的传输协议,不受同源策略限制,同源策略只限制ajax和fetch,实质是通过构造script脚本,利用约定的同名函数传递数据。
所以测试后端接口,要么让后端把你本地的开发服务地址配成白名单,要么proxy代理服务端的地址,当然最虎的还是让后端配置完全放开,变成开放式的api,那你就可以直接通过浏览器访地址栏访问接口了。