IE7及以下请求方式用GET的话,URL的限制是个很容易忽视的问题(最大2083个字符)。所以如果URL有可能过长的话,一定要用POST。情人节祝福网页
终止Ajax请求
终止请求需要调用XMLHttpRequest对象的abort()方法
而在jQuery中的$.get,$.post、$.ajax、$.getJSON、$.getScript...的返回值都是XMLHttpRequest对象.
调用abort()后,ajax请求立即停止,但仍然会执行success的回调函数 所以在success的回调函数中需要先判断 ajaxGet 或 data是否存在,存在才执行回调函数
var ajaxGet = $.get(someURL,someData,function(data){ if(!data)return true; //TODO }); ajaxGet.abort();
说到跨域资源共享(CORS Cross-Origin Resoure Sharing),现在正变的越来越重要。各种地图API,微博API等等,网站开发人员不必自己去放卫星,只要根据别人开放的接口,就能获取到这些数据。 这得益于跨源策略。 JSONP就是跨源策略的一种方案。基本原理就是利用浏览器允许跨域获取script资源(包括图片)的特点,在服务器端生成script Tag,并传回客户端。 要注意的是,服务器端返回的不是JSON格式的字符串,而是callbackName+"("+JSON_string+")"也就是JSONP。 这就相当于服务器把一段JS代码(被赋值的函数)返回浏览器,然后立即执行。 所以,在浏览器端发送的URL中(以GET的形式),需要把回调函数名传入。
客户端: 复制代码
function deal(data){ //TODO }
var s= document.createElement("script")
//不必一定叫callback,但是一定要跟服务器端的Request.QueryString匹配 s.src = "http://172.20.2.60:8088/newwebsite/MyHandler.ashx?callback=func"; document.body.appendChild(s)
复制代码
服务器端(.Net)复制代码 [1] [2] 下一页
|