如何实现跨域

打印 上一主题 下一主题

主题 495|帖子 495|积分 1485

目录
JSONP (JSON with Padding)
CORS (Cross-Origin Resource Sharing)
Nginx代理
Node.js中间件代理
Vue axios实现(或其他前端HTTP库)
原生JS、jQuery Ajax等其他方式


跨域实现是Web开发中常见的需求,主要涉及到不同源(协议、域名、端口三者之一不同即为不同源)之间的资源共享题目。
实现跨域方案:服务器端运行跨域设置CORS即是 *;在单个接口利用注解 @CrossOrigin 运行跨域;利用 jsonp跨域。
JSONP (JSON with Padding)

原理:它是利用script标签的src连接可以访问不同源的特性,加载长途返回的“JS 函数”来执行的。
优点:简朴,支持所有欣赏器。
缺点:只能发送GET请求,存在安全隐患(如XSS攻击),需要后端支持。
示例:前端通过动态创建`<script>`标签,设置其`src`属性为服务器地址并附加回调函数名作为参数,服务器返回类似`callbackFunction(data)`的字符串,前端定义`callbackFunction`函数处置惩罚返回的数据。
CORS (Cross-Origin Resource Sharing)

原理:通过服务器设置响应头中的`Access-Control-Allow-Origin`字段来指定答应哪些源访问资源,从而答应跨域请求。
优点:安全、灵活,支持所有HTTP方法。
缺点:需要后端支持,且可能涉及到预检请求等额外开销。
示例:后端服务器在响应头中添加`Access-Co

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表