1. $.ajax({
  2. url:"http://192.168.4.18:7000/ad",
  3. method:"get",
  4. dataType:"jsonp",
  5. success:res=>{
  6. console.log(res)
  7. }
  8. })
  1. 协议,子域名,主域名,端口
  2. 域:协议,子域名,主域名,端口,请求的资源文件组成
  3. 跨域: 协议,子域名,主域名,端口不同时候就叫跨域
  4. 同源策略:javascript出于同源策略,不允许从一个域访问另一个域的对象。

如何去解决跨域

8.2.1、前端跨域

jsonp跨域

  1. Jsonp(JSON with Padding) json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
  1. /* jquery-ajax jsonp*/
  2. $.ajax({
  3. url:"http://192.168.4.18:7000/ad",
  4. method:"get",
  5. dataType:"jsonp",
  6. success:res=>{
  7. console.log(res)
  8. }
  9. })

8.2.2、服务端跨域

  1. Access-Control-Allow-Origin','*'
  1. koa.js
  2. koa2-cors//中间
  3. const cors = require("koa2-cors");
  4. app.use(cors({
  5. origin:"*"
  6. }));
  7. //所有其他的域,都可以访问本域
  1. const koa = require("koa");
  2. const app = new koa();
  3. app.use(async ctx=>{
  4. ctx.set('Access-Control-Allow-Origin','*')
  5. ctx.body = {
  6. name:"cheng"
  7. }
  8. })
  9. app.listen(5000)
  1. //处理跨域
  2. app.use(async (ctx, next) => {
  3. ctx.set("Access-Control-Allow-Origin", "*")
  4. await next()
  5. })