标题 | ajax 跨域解决问题 |
内容 | ajax跨域问题,这里使用 jsonp 来完成,该方式有一个弊端,在提交POST请求的时候,它依然会使用GET的方式传递参数,这点目前还没有解决。 首先 得了解JSONP这种类型返回的值的格式,(callback(数据)) 这里并不像普通的HTTP请求那样,只要服务端返回数据就可以直接将该数据拿来使用,它的区别在于 JSONP 会将数据放到一个回调方法里面。 其次 我们来完成服务端的数据处理 //这里使用PHP语言来处理服务端的数据 /** * 获取数据 * 2014-12-25 * comfiger **/ public function getData(){ $jsonCallback = $_GET['jsonCallback']; //回去在客户端JS中定义的回调处理方法名称 $array = array( 'name' => 'comfiger', 'age' => '25', 'sex' => '男', 'job' => '服务端软件开发' ); //将数据封装城 JSON 格式 $json = json_encode($array); //将JSON数据输出到 $jsonCallback 方法中 echo "$jsonCallback($json)"; } 最后 在客服端访问服务端数据 //使用ajax方式调用 $.ajax({ url: 'http://192.168.0.105/getData?jsonCallback=?', dataType: 'jsonp', jsonp: 'callback', //jsonp回调处理函数,默认为: callback type: 'get', success: function(data){ //console.log('jsonpData: ' + JSON.stringify(data)); //这里获取到的值为: callback({name: 'comfiger', age: '25', ....}); //这样看返回值就清楚的明白调用成功后,它会继续调用 callback方法 } }); //定义回调callback方法处理 var callback = function(data){ console.log('callbackData: ' + JSON.stringify(data)); //do something... } |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。