当前位置: 首页 > 后端技术 > Node.js

今天学到的两个知识点

时间:2023-04-04 00:24:10 Node.js

调试TCMngr前后端跨域问题。跨域访问给出了一个通用的解决方案:利用JSONP和HTTP头信息实现跨域资源共享。在TCM项目中,通过在线接口提供后台数据,即实现了跨域。配置上,通过Nodejs+expressAPI实现跨域。代码如下:varexpress=require('express'),app=express();//允许跨域访问app.all('*',function(req,res,next){res.header('Access-Control-Allow-Origin','*');res.header('Access-Control-Allow-Headers','Content-Type,Content-Length,Authorization,Accept,X-Requested-With,yourHeaderFeild');res.header('Access-Control-Allow-Methods','PUT,POST,GET,DELETE,OPTIONS');if(req.method=='OPTIONS'){res.send(200);}else{next();}});虽然通过设置header信息允许跨域,但实际开发时还是很难实现跨域,所以考虑更改浏览器设置取消同源策略。下面是在网上看到的方法,可以亲测。由于浏览器通过XHR对象实现的Ajax通信一般会受到同源策略的限制,因此在Chrome中访问在线界面时,会遇到跨域限制。一个简单的解决方案是通过命令行打开Chrome浏览器。启用跨域限制:通过win+R打开窗口输入cmd打开命令行窗口,输入以下命令:“C:\Users\UserName\AppData\Local\Google\Chrome\Application\chrome.exe”--disable-web-security--user-data-dirchrome地址可以在Chrome图标上右击-->属性找到,使用这个命令前记得关闭Chrome浏览器。不同操作系统的命令方法不同://macchromebrowseropen-a"GoogleChrome"--args--disable-web-security--user-data-dir//macsafaribrowseropen-a'/Applications/Safari.app'--args--disable-web-security--user-data-dir//linuxchromium-browser--disable-web-security