跨域

57 阅读1分钟

同源策略

  1. JSONP .利用script标签 src属性 不会受到同源策略限制,并且资源加载完成后会被当作JS脚本立即执行的特点,来达到跨域请求资源的目的。 只支持get请求,很难判断请求是否失败(一般是通过请求是否超时)
        实现一个JSONP
        function jsonp(url,callBack){
            const script = document.cureatElement('scrpit');
            script.src='url'+'&callback='+callBack;
            document.body.appendChild(script);
        }
        function handleResponse(data) { console.log('Received data:', data); } 
        // Usage jsonp('https://api.example.com/data?param1=value1&param2=value2', 'handleResponse');
  1. cors cross-origin-resource-share 跨域资源共享

    origin 请求头

    相应头 允许跨域的话 Access-Control-Allow-origin: */指定域名

  2. 反向代理 通过代理服务器,绕过浏览器,请求目标服务器的数据,可以配置脚手架或者webpack devSever下的proxy选项,将开发时的/api接口请求转发到真实服务器上。 或者利用代理软件例如charles实现