[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!

posted @ 2013-04-17 15:23 DavidHHuan 阅读(...) 评论(...) 编辑 收藏