当前位置: 首页 > Web前端 > vue.js

中途跨域

时间:2023-04-01 13:01:39 vue.js

中途跨域最近准备开始用midway.js开发一些东西。开发的API在前端(vue+axios)调用时总是提示跨域,但是ajax调用是可以的。浪费了很多时间,记录在这里。中途配置:之前搜索过跨域问题的解决方法:csrf配置//在“src/config/config.default.ts”中添加如下代码exportdefault(appInfo:EggAppInfo)=>{constconfig={};...//跨域@midwayjs/web默认添加这个配置config.security={csrf:{enable:false,},domainWhiteList:['http://127.0.0.1:9384'],//允许跨域域名};...Tips:很多文档都说解决跨域,这个设置就OK,实践告诉我关掉这个配置还是不行!!security配置项是eggjs中的一个安全配置。详见:安全威胁CSRF防御CORS配置安装egg-cors$npmiegg-cors--saveconfigurationpluginenable//src/config/plugin.tsexports.cors={enable:true,package:'egg-cors',}配置cors插件//src/config/config.default.tsexportconstcors={//{string|Function}origin:'*',//{string|Array}allowMethods:'GET,HEAD,PUT,发布、删除、补丁'};如果在这个地方设置了origin:'*',那么security下设置的domainWhiteList就没用了//允许所有域名的请求//returnctx.header.origin;//当不能使用*时,用这句话,也允许所有跨域//return'http://localhost:8080';//单个跨域请求//允许多个跨域请求DomainconstallowCors=['http://localhost:9384','http://127.0.0.1:9384','http://172.16.92.62:9384',];返回allowCors.indexOf(ctx.header.origin)>-1?ctx.header.origin:'';},经测试allowMethods好像不行如果只想要特定的域名,需要在securityplugin中配置,见上面的csrfdomainWhiteList:['http://127.0.0.1:9384'],//允许跨域的域名已测试:security下指定此项,config.cors不需要设置。vueaxios如果在axios设置中加上withCredentials=true这个选项,那么请求也会造成跨域引用:https://blog.csdn.net/hermits...后端settingmethod:config.cors{credentials:true,origin:'http://127.0.0.1:9384',//注意这个地方不能用*可以用上面介绍的function方法,里面必须包含你的front-结束地址}其他框架参考:https://www.yuque.com/midwayj…