很多接口都有跨域问题,第一个版本会说让后端开发在接口上加个“Access-Control-Allow-Origin”就可以了但有时,由于任何原因可能不会添加后端。那么接口又需要调试,怎么办?下面是解决跨域nodejs代理的方法。注意如果你不知道如何使用nodejs、npm、webpack等,这篇文章可能对你没有用。开始正题:1.正常写js是我们正常的第一步目录结构:html+css+js。静态页面开发完成后,需要连接数据接口。我们将普通的ajax接口请求放在script.js中,请求路径如下图2所示。我们所有的跨域处理都在app.js中2.app.js全文:varexpress=require('express');varproxy=require('http-proxy-middleware');varapp=express();app.use('/',proxy({//代理跨域目标接口target:'http://localhost:8090',changeOrigin:true,//修改响应头信息,实现跨域和allowcookiesonProxyRes:function(proxyRes,req,res){res.header('Access-Control-Allow-Origin','*');},//修改响应消息中的cookie域名//cookieDomainRewrite:''//可以为false,表示不修改}));app.listen(8020);//你的端口3.nodejs运行并执行代理。进入app.js的父目录,运行:nodeapp.js。如下所示运行您的代理工作正常。然后你就可以在你的JS中正常调用你的接口了。这通常是我们在不使用webpack时所做的事情。如果你用webpack之类的,里面会有打包好的跨域代理。修改根目录下config->index.js中的proxy代理即可。
