JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
通过JQuery可以跨域获取JSON数据,但必须弄清楚的是,JQuery不可以跨域获取任意JSON格式的数据,必须要通过服务端输出特定的针对JQuery跨域读取的JSON数据。你可能目前对此仍然毫无了解,没关系,本文将以最简单易懂的方式介绍这个技术,相信人人都容易读懂,并能够实际应用。 JQuery获取同域的JSON数据首先引用jQuery库文件: jQuery代码: 服务器代码(PHP): "xiaoming","pass" => "123456"
);
echo json_encode($arr);
?>
服务器返回字符串: {"name":"xiaoming","pass":123456} JQuery获取跨域的JSON数据首先引用jQuery库文件: jQuery代码: "123456"
);
echo $_GET['jsoncallback']."(".json_encode($arr).")";
?>
服务器返回字符串(需要传入参数“jsoncallback”): jQuery19003894091040769696_1505708469340({"name":"xiaoming","pass":123456}) 说明,jQuery传入值每次都不一样。 JQuery获取同域和跨域JSON数据的区别从上述两个例子看到,JQuery获取同域和跨域JSON数据的区别有两点: 1)jQuery写法不同,跨域时要多加一个参数“jsoncallback=?” 2)服务器端返回字符串的写法不同,跨域时需要用到“'jsoncallback'”的传入值,构造的字符串格式是:jsoncallback传入值(原JSON字符串),注意要用括号把原JSON字符串包住。 总结 通过本文介绍,大家都应该明白了,要jQuery跨域读取JSON数据,首先需要在服务器端构造一个特殊的JSON字符串,否则是读取不了的,好在,构造方法十分简单,文中例子一看便懂。 jQuery + Ajax 获得跨域JSON数据前面的例子用的是 $.getJSON 来获得跨域JSON数据,其实我们用 $.ajax 的方法也同样可以的。 首先引用jQuery库文件: jQuery代码: 特别注意,dataType 是 jsonp 而不是 json 。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |