跨域问题的解决

为什么导致了跨域问题

  1. 协议

  • 例如你直接打开你的html文件,是file协议。
  • 上网时,打开网页的网页是http协议或者https协议
  1. 域名

  1. 端口号

  • 端口号不同,也会出现跨越问题。我们通过node默认打开的时8000端口,而本地打开浏览器是5500端口,虽然协议和域名相同,但是端口号不同,所以产生了跨域。

怎么处理跨域问题

  1. 下载cors包

  • 使用方法
    1. 首先启动node终端,然后在终端输入npm i cors -D
    2. 接着在你想要发送ajax请求的那个js文件,写下如下代码即可解决跨域问题
    const express = require('express');
    const app = express();
    const cors = require('cors');
    app.use(cors());
    
  1. 通过ajax请求设置响应头

  • 使用方法
    1. response.setHeader(‘Access-Control-Allow-Origin’,‘*’);//处理常见的请求头
    2. response.setHeader(‘Access-Control-Allow-Headers’,‘*’);//处理自定义的请求头
app.post或者get('/',(require,response)=>{  // (/代表根路径)
  //设置响应头
response.setHeader('Access-Control-Allow-Origin','*');//处理常见的请求头
response.setHeader('Access-Control-Allow-Headers','*');//处理自定义的请求头
//设置响应体
response.send('');
})

总结

综上所述,只要协议,域名,端口号三者有一点不同就会产生跨域问题,并且可以通过下载包或者设置响应头解决跨域问题。只要启动node终端,就可以通过打开html文件,进行跨域请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值