码迷,mamicode.com
首页 > Web开发 > 详细

webpack学习记录(十)-跨域

时间:2020-03-20 20:12:21      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:函数   端口   express   com   for   pil   rewrite   pre   pen   

webpack学习记录(十)-跨域

准备工作

建一个简单的服务端

const express = require('express')

let app = express()

app.get('/api/user', (req,res) => {
    res.json({msg:'服务器启动'})
)
app.listen(3000)

发送一个请求

let xhr = new XMLHttpRequest()

xhr.open('get','/api/user',true)
xhr.onload = function () {
    console.log(xhr.response)
}
xhr.send()

这里就涉及到跨域问题了,用webpack-dev-server启动默认是8080端口,但是服务端监听的是3000端口。

解决办法如下。

方法一

请求到 /api/xxx 现在会被代理到请求 http://localhost:3000/xxx, 例如 /api/user 现在会被代理到请求 http://localhost:3000/user

devServer: {
    proxy: {
        '/api': {
            target: 'http://localhost:3000',
            pathRewrite: {'/api': ''}
        }
    }
}
方法二

安装中间件,在服务器中启动webpack

npm i webpack-dev-middleware -D

const express = require('express')
const webpack = require('webpack')
const middle = require('webpack-dev-middleware')
const config = require('./webpack.config.js')

let compiler = webpack(config)
let app = express()

app.use(middle(compiler))

app.get('/api/user', (req,res) => {
    res.json({msg:'服务器启动'})
)
app.listen(3000)
使用钩子函数模拟数据
devServer:{
    before(app){
        app.get('/user',(req,res) => {
            res.json({msg:'服务器启动'})
        })
    }
}

webpack学习记录(十)-跨域

标签:函数   端口   express   com   for   pil   rewrite   pre   pen   

原文地址:https://www.cnblogs.com/Arohaa/p/12534258.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!