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

发布时间:2020-10-29 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了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

  

总结

以上是编程之家为你收集整理的Eggjs 设置跨域请求 指定地址跨域 nodejs全部内容,希望文章能够帮你解决Eggjs 设置跨域请求 指定地址跨域 nodejs所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478