1.什么是跨域
跨域: 协议,子域名,主域名,端口不同时候就叫跨域
同源策略:不允许从一个域访问到另一个域的对象
2.如何解决跨域
2.1前端跨域
jsonp跨域
Jsonp(JSON with Padding) 是 json 的一种”使用模式”,可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
/* jquery-ajax jsonp*/$.ajax({url:"http://192.168.4.18:7000/ad",method:"get",dataType:"jsonp",success:res=>{console.log(res)}})
script标签(了解)
原理:script不受同源策略的限制
var script = document.createElement("script");script.src = "http://192.168.4.18:7000/ad?&callback=handleResponse";document.body.prepend(script);function handleResponse(res) {// 对response数据进行操作代码console.log(res)}
2.2服务端跨域
koa.jskoa2-cors//中间const cors = require("koa2-cors");app.use(cors({origin:"*"}));//所有其他的域,都可以访问本域
const koa = require("koa");const app = new koa();app.use(async ctx=>{ctx.set('Access-Control-Allow-Origin','*')ctx.body = {name:"cheng"}})app.listen(5000)
