一个解决跨域问题的代理小工具

【问题描述】

之前调用聚合数据的API的时候,前端不能直接请求聚合给的API,提示出现跨域问题,所以一开始就想怎么解决这个问题,一开始想用jsonp来解决,但是搞了半天仍然不行。查了原因发现要想使用jsonp还得后端支持,也就是说后端如果没有使用jsonp,前端是不管怎样都不能用。

【解决】

卧槽那咋办?后面我就想,写个代理吧,反正自己的网站要使用node,于是就用node+express写了个代理服务器,把前端的请求转发给聚合数据再把结果返回再整理成jsonp格式,然后前端再用jsonp请求,当时写的时候端口用的跟我的网站后台端口不一样,所以还是要用jsonp请求。后面我想了想,我去傻逼了,直接搞个透明转发不就行了,弄得这么麻烦。基本原理就是把聚合数据的API接口映射成本地的一个接口,譬如http://v.juhe.cn/toutiao/index映射成本地的‘/api/news‘,这样请求的时候直接请求‘api/news‘,然后请求就会转发到聚合,聚合再返回数据,返回的数据可以直接获取到。这个时候我也正在和我同学开发一个网站,我访问他写的后端API的时候,也出现跨域,这个工具恰好解决了这个问题。分享出来希望能帮到大家,如果有问题欢迎跟我反馈,本人菜鸟一枚,有不对的地方还请大大们指教。

【工具地址】

node-proxy

时间: 2024-11-05 13:38:02

一个解决跨域问题的代理小工具的相关文章

解决跨域之服务器代理http-proxy-middleware模块

安装模块 yarn add http-proxy-middleware 引入模块 app.js var proxy = require("http-proxy-middleware"); 使用模块 app.js var app = express();// 请求的路由地址(接口文件) 进行跨域请求的协议域名app.use('/ajax_www_68ecshop_com.php', proxy({target: 'https://www.jkslw.cn', changeOrigin:

前端通过Nginx反向代理解决跨域问题

本文探讨了前端如何通过Nginx反向代理的方式解决跨域问题. 跨域 再次重申: 跨域是浏览器行为,不是服务器行为. 实际上,请求已经到达服务器了,只不过在回来的时候被浏览器限制了.就像Python他可以进行抓取数据一样,不经过浏览器而发起请求是可以得到数据,想到通过Nginx的反向代理来解决跨域问题. 代理 所谓代理就是在我们和真实的服务器之间有一台代理服务器,我们所有的请求都是通过它来进行转接的. 正向代理 正向代理就是我们访问不了Google,但是我在国外有一台vps,它可以访问Google

postMessage解决跨域问题

对于跨域我们有很多的解决方案,今天我来分享一下postMessage的那点事,postMessage是html5新增的一个解决跨域的一个方法,不过很可惜万恶的ie6,7不支持 postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档.多窗口.跨域消息传递.听起来还是很牛掰的!!! 让我们慢慢的揭开postMessage的神秘面纱...... 我们拿跨域中的iframe做例子 <script type="text/javascript">

前端解决跨域问题的8种方案(最新最全)

原文:http://www.cnblogs.com/JChen666/p/3399951.html 1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.jshttp://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.jshttp://www.a.com/b.js 同一域名,不同端

前端解决跨域问题的8种方案(最新最全)(转)

1.同源策略如下: URL说明是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js同一域名下允许 http://www.a.com/lab/a.jshttp://www.a.com/script/b.js同一域名下不同文件夹允许 http://www.a.com:8000/a.jshttp://www.a.com/b.js同一域名,不同端口不允许 http://www.a.com/a.jshttps://www.a.com/b.js同一域名,不同协议

前端开发如何独立解决跨域问题

背景 跨域是由浏览器同源策略引起的,是指页面请求的接口地址,必须与页面url地址处于同域上(即域名,端口,协议相同).这是为了防止某域名下的接口被其他域名下的网页非法调用,是浏览器对JavaScript施加的安全限制. 这个措施出发点是好的,但在项目开发的过程中,常常给前端开发者带来麻烦. 由于页面开发中,静态资源是放在本地电脑上的,访问这些资源通常通过IP方式(127.0.0.1)或者localhosts来访问,与线上服务器所在域名不符,不能顺利进行接口调用. 解决跨域问题常用的解决方案有两个

解决跨域访问

解决跨域访问的方法 1.用响应头 response.setHeader("Access-Control-Allow-Origin","*");//允许哪些服务器访问 response.setHeader("Access-Control-Allow-Methods","GET POST");//允许的提交方式 2.使用代理 3.JSONP 原理:通过JavaScript标签来访问服务器,并接受服务器返回的数据来实现跨域访问 js

前端解决跨域问题的8种方案

原文http://blog.csdn.net/joyhen/article/details/21631833 1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.jshttp://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.jshttp://www.a.com/b.js 同一域

使用nginx解决跨域问题(flask为例)

背景 我们单位的架构是在api和js之间架构一个中间层(python编写),以实现后端渲染,登录状态判定,跨域转发api等功能.但是这样一个中间会使前端工程师的工作量乘上两倍,原本js可以直接ajax请求api,但是我们不得不ajax请求中间层,中间层再请求api.如图: 为了少敲代码,提高工作效率,我们当然希望将python中间层砍掉,但是如何解决以下三个问题,成为关键: 后端渲染 登录状态判定 跨域转发api 关于1,2我会在另外两篇博客中详细叙述,这篇文章主要解决3,也就是跨域问题.解决跨