ajax 跨域解决问题
来源: 阅读:572 次 日期:2015-04-21 09:55:52
温馨提示: 小编为您整理了“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...

}

更多信息请查看IT技术专栏

更多信息请查看网络编程
手机网站地址:ajax 跨域解决问题
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map