ajax跨域之---服务器端代理实现

Posted 山高我为峰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax跨域之---服务器端代理实现相关的知识,希望对你有一定的参考价值。

介绍一种不是通过js实现跨域的方式: 通过服务器端代理实现。

具体的思路:由于浏览器有同源策略限制,(同源策略即:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy),所以想要跨域访问其他域下的资源,需要绕开浏览器的这个限制,可以在服务器端设置一个代理,由服务器端向跨域下的网站发出请求,再将请求结果返回给前端,成功避免同源策略的限制。

具体操作如下:

1、在localhost:81/a.html中,向同源下的某个代理程序发出请求

技术分享
$.ajax({
    url:‘/proxy.php?name=hello&info=information‘,   //服务器端的代理程序
    type:‘GET‘,
    success:function (){}

})
技术分享

 

2、在代理程序proxy.php中,向非同源下的服务器发出请求,获得请求结果,将结果返回给前端。

技术分享
<?php 

$name=$_GET[‘name‘];
$info = $_GET[‘info‘];
$crossUrl = ‘http://b.com/sub?name=‘.$name;   //向其他域下发出请求
$res = file_get_contents($crossUrl);
echo $res; 


 ?>
技术分享

 

以上是关于ajax跨域之---服务器端代理实现的主要内容,如果未能解决你的问题,请参考以下文章

ajax跨域之CORS

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

前端跨域之Jsonp实现原理及.Net下Jsonp的实现

ajax跨域之jsonp

Ajax跨域之ContentType为application/json请求失败的问题

前端跨域之Jsonp的原生请求和Jquery的ajax请求,简单易懂。