跨域请求数据

  • express -D node 服务器
  1. /***
  2. * 跨域 请求数据 ajax 四部曲
  3. *
  4. */
  5. let xhr = new XMLHttpRequest();
  6. xhr.open('GET',"/api/user",true) // /api 开头的都是一个接口,像后端请求数据 true 表示异步
  7. xhr.onreadystatechange = function () {
  8. console.log(xhr.response);
  9. }
  10. xhr.send();
  11. /***
  12. * webPack 文件 devServer 配置
  13. *
  14. */
  15. devServer: {
  16. port: 8080,
  17. compress: true, //是否压缩代码
  18. open:true,
  19. hot:true,
  20. // 跨域请求
  21. // 方式一: 启动代理
  22. proxy: {
  23. '/api':{
  24. target: 'http://localhost:8090',
  25. secure: false, // true 表示以 https 开头
  26. pathRewrite: {"^/api" : ""}, //你不需要传递 /api ,则需要重写路径地址
  27. changeOrigin: true, //把请求头当中的 host 地址改成服务器的地址
  28. }
  29. },
  30. // 方式二 自定义中间件
  31. before:function(app, server){ //启动一个端口号为 8080 的服务
  32. app.get('/api/user', function(req, res) {
  33. res.json({ custom: 'response' });
  34. });
  35. }
  36. },

webpack.config.js 配置文件

  1. // 配置文件
  2. const path = require('path');
  3. const {CleanWebpackPlugin} = require('clean-webpack-plugin');
  4. const HtmlWebpackPlugin = require('html-webpack-plugin')
  5. module.exports = {
  6. // 入口
  7. entry: {
  8. index: './src/index.js',
  9. },
  10. // 出口
  11. output: {
  12. // filename: 'index.js',
  13. filename: '[name].js',
  14. path: path.resolve(__dirname,"dist")
  15. },
  16. // 加载机
  17. module: {
  18. rules: [
  19. // js 加载机
  20. {
  21. test: /\.js$/,
  22. use: 'babel-loader',
  23. include:path.resolve(__dirname,'src'), // 需要编译的 js 文件目录
  24. exclude:/node_modules/, // 排除需要编译的 js 文件目录
  25. },
  26. ]
  27. },
  28. // 服务器
  29. devServer: {
  30. port: 8080,
  31. compress: true, //是否压缩代码
  32. open:true,
  33. hot:true,
  34. // 跨域请求
  35. // proxy: {// 方式一: 启动代理
  36. // '/api':{
  37. // target: 'http://localhost:8090',
  38. // secure: false, // true 表示以 https 开头
  39. // pathRewrite: {"^/api" : ""}, //你不需要传递 /api ,则需要重写路径地址
  40. // changeOrigin: true, //把请求头当中的 host 地址改成服务器的地址
  41. // }
  42. // },
  43. // 方式二 自定义中间件
  44. before:function(app, server){ //启动一个端口号为 8080 的服务
  45. app.get('/api/user', function(req, res) {
  46. res.json({ custom: 'response' });
  47. });
  48. }
  49. },
  50. // 插件
  51. plugins: [
  52. new CleanWebpackPlugin(), // 清空输出目录
  53. new HtmlWebpackPlugin({
  54. template: './index.html',
  55. filename: 'index.html',
  56. hash: true,
  57. }),
  58. ],
  59. }