关于ajax的问题,原理和跨域

今天突然看到一个问题是关于ajax使用的什么协议?

百度得知:使用的是http协议,原理是使用的xmlHttpRequest对象异步请求服务器

然后突然看到ajax的几个新操作:  .done(function(){})

    $.ajax({
		type:"post",           
		url:url, //访问的链接  
		data:"",   
		dataType:"json",           //数据格式设置为jsonp        。  
		success:function(data){     //成功的回调函数        
			console.log(data+"1")
		},            
		error:function (e) {
			console.log(e)
		}       
	})
	// 推荐使用这种  支持jquery 1.5 
	.done(function(data) {  //上面千万不要加分号否则就报错了
	    console.log(data+"2")
	})
	.fail(function() {
	    alert('服务器超时,请重试!');
	});
// 这样的话会同时执行success后台.done  但是推荐使用,Done()

但是ajax不能做跨域,这里就涉及到了jsonp:

原生代码示例:

// 第一种  直接创建标签


testjsonp.js文件内容:
aa({"name":"tom","age":18});

// 第二种  js创在script标签  


testjsonp.js文件内容:
aa({"name":"tom","age":18});

// 第三种



testJsonp.php文件内容:



// 第四种
// 注意callback=?  这里的?一定要有意味着占位符的意思 不能为空

    JSONP  和 JSON  的区别: JSON  是一种传输格式。

JSONP (JSON with Padding)是JSON的一种“使用模式”,使用的是script的跨域能力,实现的这个模式。

你可能感兴趣的:(js)