跨域名相关知识

浏览器默认都是拒绝ajax跨域名请求数据

但可以通过php设置header信息来允许请求

header("Access-Control-Allow-Origin:*"); 或 header("Access-Control-Allow-Origin: *.mi.com");

但此中方式只适合firefox,google浏览器,微软的IE7,8,9浏览器都是不支持跨域请求,没有解决方法

IE浏览器唯一解决方式只能是jsonp的方式输出<script>标签的形式来解决跨域请求!

好消息是手机端浏览器都是采用webkit内核都是只需要设置下header就直接支持跨域请求,不需要再做兼容了!


关于解决跨域需要设置cookie的问题

IE浏览器通过jsonp访问形式解决跨域时必须在php中设置隐私策略,才能种植cookie

header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

firefox,google浏览器则不需要设置都可以直接种植cookie!


json和jsonp的区别

json是请求数据的一种方式,当不涉及cookie传送时建议用这种方式,取回来的数据是json格式

jsonp是为子解决IE不能跨域以及需要种植cookie和发送cookie时的一种解决方案,比如要验证登录才能取数据等等



如使用jquery扩展库

<script>
		$(function(){
			$.ajax({
				type: "post",
				url: '//m.test.shengmiguo.com/business_app.php?app=business_member&do=login',
				data: {
					username:'1325028',
					password:'123456'
				},
				dataType: "jsonp",  //或json数据格式

				success: function(data){
					alert(data.msg);
				}
			});
			
		});
	</script>

则非常方便解决跨域来请求数据的难题

你可能感兴趣的:(跨域名相关知识)