[jQuery] ajax跨域处理方式
情景:
域名A:http://www.sharefamily.net
域名B:http://member.sharefamily.net
域名A要通过ajax,调用域名B的数据,这样就会出现ajax跨域名请求的问题。
如果你是使用了jQuery,那么就很好处理了,将ajax的dataType设置为jsonp就可以了。
域名A的js代码原来是:
jQuery.ajax({ url: 'http://member.sharefamily.net', type: 'get', dataType: 'json', success: function (rs) { //其它逻辑 } });
修改为:
jQuery.ajax({
url: 'http://member.sharefamily.net',
type: 'get',
dataType: 'jsonp', //注意这里,主要使用 jsonp 这个方式
success: function (rs) {
//其它逻辑
}
});
如果域名B的后端程序原来输出的是json值,那么也要处理一下,如以下 PHP 代码:
//存在$_GET['callback'],代表是跨域请求 if (!empty($_GET['callback'])) { echo $_GET['callback'] . '('.json_encode($rs) . ')'; } else { echo json_encode($rs); }
Have fun with jQuery!