使用jsonp的方式处理CORS跨域的问题

  • 什么是JSONP
    • JSONP(JSON with Padding)是JSON的一种”使用模式“,可用于解决主流浏览器的跨域数据访问的问题。
  • JSONP的实现原理
    • 由于浏览器同源策略限制,网页无法通过Ajax请求非同源的接口数据。
    • script标签不受浏览器同源策略的影响,可以通过src属性,请求非同源的js脚本数据。
    • 通过函数调用的形式,接收跨域接口响应回来的数据。
  • JSONP的缺点
    • 只支持GET数据请求,不支持POET数据请求。
    • JSONP与Ajax之间无任何关系,其没有用到XMLHttpRequest对象。
  • 用jquery来实现jsonp的请求

先定义一个方法

function callbackbbb(res){
   console.log(res);
}

$.ajax({
 url: "http://xxx.com/api/xxx",
 type: "get",
 dataType:'jsonp',
 data: {
  jsoncallback:'callbackbbb'
 },
 success: function (res) {
 console.log('请求结果');
  console.log(res);
 }
});
然后对应的接口处理只需要输出这样的字符串就好了
这里用php代码实现

$jsoncallback = $_GET[‘jsoncallback’];//这里就是前端的回调方法名 $json_data = ‘[“0”, “可以多个参数”]’; echo $jsoncallback . “(” . $json_data . “)”;

这样就可以看到前端的回调方法打印出数据了

By cc

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注