且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

浏览器跨域办法

更新时间:2022-08-13 07:38:47

参考文章: https://www.cnblogs.com/2050/p/3191744.html
开发中的跨域办法总结

一、jsonp

实现思路:
前端请求:html页面发送请求的时候在请求地址上加上参数callback=xxx,比如callback=test(当然callback也可以是别的,需要跟服务器端约定),同时,本地必须有一个叫test的函数
服务器端:接收到请求的时候,解析参数,得到前端传来的函数名test,然后给前端返回数据的时候把test也带上,比如要返回{a:2,b:3},实际返回的是字符串'test({"a":"2","b":"3"})',而浏览器收到这段字符串的时候,就会自动的去执行字符串里的代码,最终执行的就是test({a:2,b3}),就拿到了实际的数据{a:2,b:3};

二、通过修改document.domain来跨子域

实际就是把两个域让他们的变成同域的,有条件限制,必须主域相同才可以

三、使用window.name来进行跨域

在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name,

四、使用HTML5中新引进的window.postMessage方法来跨域传送数据

一个页面有几个框架的那种情况下,每一个框架都有一个window对象,他们之间可以通过postMessage传递信息

五、服务器设置跨域

php、java等都可以设置允许哪些命名访问

六、给浏览器设置跨域(开发时常用)

七、使用代理

我们经常使用webpack就可以设置