引言

ajax跨域就无法成功获取数据了,需要通过jsonp来处理

报错如下

1.改为jsonp

    var targeturl = ajaxurl+"?g=Api&m="+m+"&a="+a; // 跨域地址
$.ajax({
type: "get",
url:targeturl,
async:false, // 不支持同步,同步无效
dataType:'jsonp',
jsonp: "callback",
jsonpCallback:"jsonpHandler",
data: {},
success:function(json){
}
});

这个时候,还不够。依旧无法获取json数据

报错如下

2.需要后台处理

原输出格式

protected function printOut() {
exit(json_encode($this->outData));
}

改为新的格式,加上一个callback

protected function printJsonp() {
exit($_GET['callback']."(".json_encode($this->outData).")");
}

在XHR中并不能看到

它其实属于js范畴,会自动包裹上回调函数名,

jsonpHandler({"status":1,"msg":"\u83b7\u53d6\u6210\u529f","info":[{"id":"1","name":"\u8863\u670d","goods":[{"goods_id":"1","name":"\u6f02\u4eae\u7684\u8863\u670d","price":"100","logoimg":"http:\/\/image.diandodo.com\/zhudianbao\/Uploads\/User\/u1250000222\/20160723\/201607231342158687.png@250h_250w_1e_1c"},{"goods_id":"2","name":"\u7f8e\u4e3d\u7684\u8863\u670d","price":"200","logoimg":"http:\/\/image.diandodo.com\/zhudianbao\/Uploads\/User\/u1250000222\/20160723\/201607231342158687.png@250h_250w_1e_1c"}]},{"id":"2","name":"\u978b\u5b50","goods":[{"goods_id":"3","name":"\u6f02\u4eae\u7684\u978b\u5b50","price":"100","logoimg":"http:\/\/image.diandodo.com\/zhudianbao\/Uploads\/User\/u1250000222\/20160723\/201607231342158687.png@250h_250w_1e_1c"},{"goods_id":"4","name":"\u7f8e\u4e3d\u7684\u978b\u5b50","price":"200","logoimg":"http:\/\/image.diandodo.com\/zhudianbao\/Uploads\/User\/u1250000222\/20160723\/201607231342158687.png@250h_250w_1e_1c"}]}]})

3.jsonp不支持同步处理,需要异步处理。

jsonp中async无效。要么把操作写在success中,要么写在回调函数中。

    // ajax获取接口数据
ajaxGetApiInfo('Home','getCategoryGoods');
function jsonpHandler(json) {
if (json.status == '1') {
var goods = json.info;
var evalText = doT.template($("#category-goods-tmpl").text());
$("#category-goods").html(evalText(goods));
}
}

最新文章

  1. oracle 视图的创建,游标,left join
  2. wndows程序设计之书籍知识与代码摘录-封装一个类似printf的messagebox
  3. source insight shift+tab问题
  4. 推荐一个linux下的web压力测试工具神器webbench
  5. Ubuntu各版本下载地址
  6. wdcp升级php版本到5.3,5.5
  7. Data Flow ->> Look up & Merge Join
  8. css笔记01:CSS例子
  9. Codeforces 616E - Sum of Remainders
  10. onethink加密解密函数
  11. 两个Select 之间的值的传递
  12. 第二章SignalR所支持的平台
  13. Jmeter连接DB2/ORACLE/MYSQL数据库
  14. Mybatis,Spring,SpringMVC框架面试题
  15. liunx 系统调用 getopt() 函数
  16. EBS业务学习之应付INVOICE类型
  17. Java8新特性之三:Stream API
  18. hdu 2063 给男女匹配 (匈牙利算法)
  19. 打开本页N秒后跳转页面
  20. systemverilog assertion

热门文章

  1. C#动态调用webservice方法
  2. Mac OS X 10.10 执行 Eclipse 提示须要安装 Java
  3. [Tools] Add a Dynamic Tweet Button to a Webpage
  4. Linux C高级编程——网络编程之以太网(2)
  5. Java 8 Stream 教程
  6. Android TabHost控件 右侧留空并增加按钮
  7. JMeter 一:Elements of a Test Plan
  8. Android 解决qq分享后返回程序出现的Bug
  9. HTML5中标记与特殊属性
  10. Unity UI代码自动生成