• Eggjs 设置跨域请求 指定地址跨域 nodejs


    首先egg自身框架没有直接设置允许跨域请求的功能和接口,所以需要第三方包来设置跨域请求!

    • 先安装第三方包来设置跨域,使用egg-cors
    // npm
    npm i egg-cors --save
    // cnpm 
    cnpm i egg-cors --save
    // yarn 
    yarn add  egg-cors 
    
    •  设置egg框架plugin.js文件  目录 ${root}/config/plugin.js
    module.exports = {
      ...
      //跨域插件  
      cors: {
        enable: true,
        package: 'egg-cors',
      },
    };
    
    •  设置egg框架config.default.js  目录${root}/config/config.default.js
     
    ...
    
    config.security = {
        csrf: {
          enable: false,
        },
        domainWhiteList: [ '*' ],
      };
      config.cors = {
        origin: ctx => ctx.get('origin'), //这种方式是允许所有的IP+端口跨域访问
        credentials: true, // 开启认证
        allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS', //允许请求的方式
    };
    
    •  若想指定某个地址允许跨域访问则需要单独设置origin即可
     origin: 'http://localhost:3001'

    这样你本地的Vue,React 项目就可以请求Egg框架的api了。

    import axios from "axios";
    const BASEURL = process.env.NODE_ENV === "development" ? "http://127.0.0.1:7001/" : "http://127.0.0.1:7001/" //后端地址
    const config = {
    
    
        // `baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL。
        // 它可以通过设置一个 `baseURL` 便于为 axios 实例的方法传递相对 URL
        baseURL: BASEURL,
    
    
        // `headers` 是即将被发送的自定义请求头
        headers: { 'X-Requested-With': 'XMLHttpRequest' },
    
    
        // `timeout` 指定请求超时的毫秒数(0 表示无超时时间)
        // 如果请求话费了超过 `timeout` 的时间,请求将被中断
        timeout: 60 * 1000,
    
        // `withCredentials` 表示跨域请求时是否需要使用凭证
        withCredentials: true, // default
    }
    
    const myAjax = axios.create(config)
    export default myAjax
    

      

  • 相关阅读:
    Session_End引发的性能问题!
    可能引发性能问题的几个写法,看看你占哪一个.
    优化你的DiscuzNT3.0,让它跑起来(2)发帖回帖篇
    什么是经济学
    生产可能性边界和机会成本
    九宫格的实现(转)
    LAMP的安装和配置
    iPhone 开发过程中的一些小技术的总结(转)
    有效的利用资源边际成本与边际利益
    Dijkstra算法(注:单源最短路径的贪心算法)和数学归纳法<转>
  • 原文地址:https://www.cnblogs.com/kongyijilafumi/p/13878844.html
Copyright © 2020-2023  润新知