1.一般情况下AJAX是无法跨域获取数据的,但是如果用 Jsonp 请求方式是可以实现跨域请求的
以下是三个重点:
dataType: "jsonp", //请求Jsonp格式
以下是三个重点:
dataType: "jsonp", //请求Jsonp格式
jsonp: , // 后台定义的回调函数标识符(一般默认为:callback)
<html> <head> <script type="text/javascript" src="/js/jquery.min.js"></script> <script type="text/javascript"> function getData(keyword) { var url="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=" +keyword; $.ajax({ type: "get", async: false, url: encodeURI(url), dataType: "jsonp", jsonp: "cb", // 后台定义的回调函数标识符(一般默认为:callback) jsonpCallback: "jsonCallback", // 自定义的jsonp回调函数名称(默认为jQuery自动生成的随机函数名) success: function(e){ console.log('名字:'+e.name); console.log('年龄:'+e.age); }, error: function(){ alert('fail'); } }); } </script> </head> <body> <button onclick="getData('我');">百度搜索"我"</button> </body> </html>后端以PHP为例:
public function XXX(){ //获取回调函数名 $jsoncallback = htmlspecialchars($_REQUEST['cb']);
//json数据 $json_data = '{"name":"张三","age":"30"}'; //输出jsonp格式的数据 echo $jsoncallback . "(" . $json_data . ")"; }
友情提示:垃圾评论一律封号...