龙空技术网

前端跨域请求api的几种常用解决方案

简单印象 5011

前言:

现时姐妹们对“前端解决跨域请求”都比较关切,各位老铁们都想要分析一些“前端解决跨域请求”的相关内容。那么小编在网络上收集了一些关于“前端解决跨域请求””的相关资讯,希望各位老铁们能喜欢,各位老铁们快快来了解一下吧!

总结一下,前端跨域请求后端api的几种常用方法:

1.iframe

随着近年来前端技术的飞跃发展以及移动互联网时代的洗礼,iframe的使用渐渐的不被建议,虽然也是一种跨域请求的解决方案,但这里就不再讲述,请读者自行查阅网上资料。

2.jsonp

jsonp是比较常用的方法,我们假设a.com域名需要向b.com发起一个api请求(jsonp的一个缺点是,仅能接受GET方式),则使用JSONP完成该过程的实例可以这样:

a.com/jsonp.html

b.com/jsonp.php

3. 通过请求同域下的api,间接获取它域的数据

我们仍以域名a.com/demo.html需获取b.com下的数据为例,这时候只要在a.com下创建一个demo.php,由demo.php通过curl的方式向b.com发起数据请求,并包装请求结果返回给a.com/demo.html页面。这里主要是通过与a.com/demo.html同域下的a.com/demo.php做了一层数据请求代理,避免了前端跨域请求。

4.使用web服务器的反向代理设置

同样是使用代理的思维,但与2不同的是,我们这里使用web服务器的反向代理配置:

Nginx反向代理可以使用 proxy_pass

Apache2的反向代理的配置可以使用ProxyPass

5.设置header头(CORS)

在你要跨域请求的api里,设置header头Access-Control-Allow-Origin: *,以php为例,在api代码的入口方法处加入如下一行:

标签: #前端解决跨域请求