前端面试-跨域

本文介绍了前端开发中的跨域问题,包括同源策略的背景,详细阐述了跨域的概念及其限制。接着,文章提供了三种跨域解决方案:1) 使用Node.js配置反向代理;2) 通过CORS(跨域资源共享)设置响应头;3) 利用JSONP(JSON with Padding)进行跨域请求。CORS是官方推荐的解决方案,而JSONP则适用于只支持GET请求的场景。
摘要由CSDN通过智能技术生成

1.什么是跨域

前提知识在解释跨域之前,我们需要先了解什么是同源策略?同源策略是由 Netscape(网景) 提出的一个著名的安全策略,现在所有支持 JavaScript 的浏览器都会使用这个策略。所谓的同源指的是网页的协议,域名,端口都相同

网页域名示例: http://www.baidu.com:80 (提示:80 为默认端口,可以省略,若为其它端口则必须显示定义)。

非同源限制:

1.cookie、localStorage、indexDB无法读取
2.DOM和js对象无法获取
3.无法发送Ajax请求

跨域就是一个域名的网页向另外一个域名的网页发起请求,其中协议,域名,端口任一不同,都是跨域。

2.怎么解决跨域问题?

解决方案

一,代理服务器

基于Node.js配置反向代理

使用Node.js作为前端代理:

  1. 在Node.js中创建一个服务器,用于接收前端的请求并转发到目标服务器。
  2. 在前端代码中,将请求发送给Node.js服务器,而不是直接发送给目标服务器。
  3. Node.js服务器接收到请求后,将请求转发给目标服务器,并将目标服务器的响应返回给前端。

下面是一个简单的示例代码,使用Express框架创建Node.js服务器:

const express = require('express');
const request = require('request');

const app = express();

// 设置允许跨域访问
  • 24
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值