ajax请求跨域失败问题
为什么导致了跨域问题
- 例如你直接打开你的html文件,是file协议。
- 上网时,打开网页的网页是http协议或者https协议
- 协议相同时,但是你域名不同,比如https://www.csdn.net/ 和 https://juejin.cn/,https协议后的www.csdn.net域名和juejin.cn就不同,因此也会导致跨域
- 当端口号不同,也会出现跨越问题。我们通过node默认打开的时8000端口,而本地打开浏览器是5500端口,虽然协议和域名相同,但是端口号不同,所以产生了跨域。
怎么处理跨域问题
- 使用方法
- 首先启动node终端,然后在终端输入
npm i cors -D
- 接着在你想要发送ajax请求的那个js文件,写下如下代码即可解决跨域问题
const express = require('express'); const app = express(); const cors = require('cors'); app.use(cors());
- 首先启动node终端,然后在终端输入
- 使用方法
- response.setHeader(‘Access-Control-Allow-Origin’,‘*’);//处理常见的请求头
- 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文件,进行跨域请求。