原生ajax封装,和node后台配置跨域请求

利用原生js的window对象的fetch,封装ajax方法到window上

ajax.js

window.$ajax = (url, method, data = {}) => {
    method = method.toLocaleUpperCase()
    let config = {
        method,
        headers: { // 配置请求头
            'Content-Type': 'application/json',
            'Accept': 'application/json',
            'Access-Control-Allow-Origin' : '*'
        }
    }
    if (method === 'GET') {
        url += '?'
        Object.keys(data).forEach(key => {
            url += `${key}=${data[key]}&`
        })
        url = url.slice(0, url.length - 1)
    } else {
        config.body = data
    }
    return new Promise((resolve,reject)=>{
        fetch(url,config).then(res=>{   // 因为是fetch,所以和axios或者superagent返回数据格式不一样
           res.text().then(resText=>{
               resolve(JSON.parse(resText))
           }).catch(()=>{
               reject('network error')
           })
        }).catch(err => {
           reject(err)
        })
    })
}

nodejs配置跨域请求

server.js

let express = require('express')
let app = express()
let db = require('./model/connect')

let userRouter = require('./router/userRouter/userRouter')
let questionRouter = require('./router/questionRouter/questionRouter')

app.use(function (req,res,next) {
  //每一次发送的请求头
   //支持cors跨域
   res.header('Access-Control-Allow-Origin','*');
   res.header('Access-Control-Allow-Methods','POST, GET, OPTIONS, DELETE')
   res.header('Access-Control-Allow-Headers','content-type,x-requested-with,Authorization,x-ui-request,lang,accept,access-control-allow-origin')
   res.header('Access-Control-Allow-Credentials','true')
   next();
});
app.use('/user',userRouter)
app.use('/question',questionRouter)

app.listen(3000,()=>{
  console.log('server start')
}) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值