day2.node(接口问题及跨域处理)

以node express-generator为例
//node中在routes模块中创建对应的文件,
var express = require('express');
var router = express.Router();  //固定写法
//根据请求方式对应
router.get('/list', (req, res) => {
      res.json({
   })
}
//暴露出去
module.exports = router;

完成以上步骤, 去app.js中,require并user,前端根据AJAX去寻找相对应的路径请求所需数据。

跨域

一、为什么会出现跨域问题
出于浏览器的同源策略限制。同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。
所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)。
二、node中间件代理处理跨域
使用NPM插件:http-proxy-middleware

//引入依赖
var express = require('express')
var proxy = require('http-proxy-middleware')
 
var app = express()
 //来自api的请求进入目标文件 'http://www.example.org'
app.use('/api', proxy({ target: 'http://www.example.org', changeOrigin: true }))
app.listen(3000)

进入network,xhr中找到url,前端通过ajax请求


image.png

注意拿到的resp为字符串,需要转换,这里的url完整就是通过target拼接上后面字段(app.js中就是指来自commonFoot的请求进入target中去拼接上前端url去找)

你可能感兴趣的:(day2.node(接口问题及跨域处理))