• express配置跨域


    前后端分离场景后端需要配置跨域,否则浏览器那端跨域请求会报错。

    跨域要配置的:

    app.all('*', (req, res, next) => {
      // google需要配置,否则报错cors error
      res.setHeader('Access-Control-Allow-Credentials', 'true')
      // 允许的地址,http://127.0.0.1:9000这样的格式
      res.setHeader('Access-Control-Allow-Origin', req.get('Origin'))
      // 允许跨域请求的方法
      res.setHeader(
        'Access-Control-Allow-Methods',
        'POST, GET, OPTIONS, DELETE, PUT'
      )
      // 允许跨域请求header携带哪些东西
      res.header(
        'Access-Control-Allow-Headers',
        'Origin, X-Requested-With, Content-Type, Accept, If-Modified-Since'
      )
      next()
    })
    

      

      

    整体写法例子:

    const express = require('express')
    const app = express()
    const port = 9000
    
    let mall_data = require('./data/mall')
    
    app.all('*', (req, res, next) => {
      // google需要配置,否则报错cors error
      res.setHeader('Access-Control-Allow-Credentials', 'true')
      // 允许的地址,http://127.0.0.1:9000这样的格式
      res.setHeader('Access-Control-Allow-Origin', req.get('Origin'))
      // 允许跨域请求的方法
      res.setHeader(
        'Access-Control-Allow-Methods',
        'POST, GET, OPTIONS, DELETE, PUT'
      )
      // 允许跨域请求header携带哪些东西
      res.header(
        'Access-Control-Allow-Headers',
        'Origin, X-Requested-With, Content-Type, Accept, If-Modified-Since'
      )
      next()
    })
    
    app.post('/mall/createMall', (req, res) => {
      res.send({
        code: 0,
        msg: '创建成功!',
      })
    })
    
    app.get('/mall/queryMall', (req, res) => {
      res.send({
        code: 0,
        sum_count: mall_data.mall.length,
        data: mall_data.mall,
      })
    })
    
    app.get('/mall/getMallList', (req, res) => {
      let mallId = req.query.mallId
      let data = {}
      for (let item of mall_data.mall) {
        if (item.id == mallId) {
          data = item
          break
        }
      }
      res.send({
        code: 0,
        data: data,
      })
    })
    
    app.listen(port, () => {
      console.log(`Example app listening at http://localhost:${port}`)
    })
    

      

  • 相关阅读:
    QT5笔记:1.UI文件设计与运行机制
    QStringListModel的使用
    D pid(16916) tid(19140) 14:05:45 EdgeSnapFeature::PostExitSizeMove: WM_TWINVIEW_SHOW_GRIDLINES > off
    QT5笔记:3.手动撸界面和可视化托界面混合
    Qt QString的格式化与QString的拼接
    C# WinForm UDP 发送和接收消息
    关于Convert.ToUInt16(string? value, int fromBase);
    QT5笔记:2.可视化UI设计
    OpenCvSharp 打开rtsp视频并录制mp4文件
    C# List LinQ Lambda 表达式
  • 原文地址:https://www.cnblogs.com/zezhou/p/14666102.html
Copyright © 2020-2023  润新知