jq ajax跨域请求php,几种常用的ajax 跨域请求

原标题:几种常用的ajax 跨域请求

作者:唯芸熙

首先,我们要明白,什么是跨域,为什么要跨域。 由于JS中存在同源策略。当请求不同协议名不同端口号下面的文件时,将会违背同源策略,无法请求成功!需要进行跨域处理!

这篇文章就为大家详细介绍一下个人常用的三种跨域方式,以请求PHP为例。

1、header("Access-Control-Allow-Origin:*");

后台PHP进行设置,前台无需任何设置,在后台被请求的PHP文件中,写入一条header。表示允许哪些域名请求这个PHP文件,*表示所有域名都允许

eg:

前台:

$.post("http://localhost/lianxi/kuayu.php",function(data){ console.log(data); })

后台:

header("Access-Control-Allow-Origin:*");$str=<<

前台返回:

63c250fc41487bf84b53042d9120c130.png

2、使用src属性+jsonp实现跨域

①用于src属性的标签自带跨域功能,所以可以使用标签的src属性请求后台数据。

②由于src在加载数据成功后,会直接将加载内容放入到标签中。所以后台直接返回JSON字符串不能在标签中解析。因此,后台应该返回给前台一个回调函数,并将JSON字符串作为参数传入。

③前台就收到返回的回调函数,将直接在标签中调用。因此需要声明这样一个回调函数,作为请求成功的回调。

jsonp:JSON with padding,是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。

前台:

< type="text/java">function callBack(data){ console.log(data); } >< type="text/java" src="http://localhost/lianxi/kuayu.php">>

后台:

header("Content-Type:text/html;charset=utf-8");$str=<<

前台返回:

c7d11e413e42ecc1222f28d904e5303f.png

3、JQuery的AJax实现JSONP

①在ajax请求时,设置dataType为"jsonp"

②后台返回时,依然需要返回回调函数名。但是ajax在发送请求时,会默认使用get请求回调函数名发给后台,后台可以使用$_GET['callback']取出回调函数名

echo "{$_GET['callback']}({$str})";

③后台返回以后,ajax依然可以用success作为成功的回调函数:

success:function(data){}

当然后台也可以随便返回一个回到函数名, echo "callBack({$json})"; 前台只要请求成功,就会自动调用这个函数。类似第二条的②③步

如果有对前端感兴趣前端程序员,可以加入我们的web前端技术学习群哦189394454。会送前端的精品教程噢!

前台:

$.ajax({ type:"post", url:"http://localhost/lianxi/kuayu.php", dataType:"jsonp", success:function(data){ console.log(data); } });

后台:

echo "{$_GET['callback']}({$str})";

前台返回:

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值