28 ajax
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | AjAX 刷新部分网页区域,AJAX缓存比较严重 AjAX是基于XMLHttpRequest对象实现的 var request = new XMLHttpRequest(); / / 新建XMLHttpRequest对象 request.onreadystatechange = function () { / / 状态发生变化时,函数被回调 if (request.readyState = = = 4 ) { / / 判断请求是否完成 if (request.status = = = 200 ) { / / 判断是否是一个成功的响应 / / 成功,通过responseText拿到响应的文本: return success(request.responseText); } else { / / 失败,根据响应码判断失败原因: return fail(request.status); } } else { / / HTTP请求还在继续... } } / / 发送请求: request. open ( 'GET' , '/api/categories' ); request.send(); 安全限制 因为浏览器的同源策略导致的,所以请求其他的域名会报错 默认情况下,JavaScript在发送AJAX请求时,URL的域名必须和当前页面完全一致 完全一致的意思是 域名要相同(www.example.com和example.com不同) 协议要相同(http和https不同) 端口号要相同(默认是: 80 端口,它和: 8080 就不同) AJAX请求外域的方法: 1 、一是通过Flash插件发送HTTP请求,这种方式可以绕过浏览器的安全限制,但必须安装Flash,并且跟Flash交互。不过Flash用起来麻烦,而且现在用得也越来越少了。 2 、二是通过在同源域名下架设一个代理服务器来转发,JavaScript负责把请求发送到代理服务器 如: '/proxy?url=http://www.sina.com.cn' 3 、第三种方式称为JSONP,它有个限制,只能用GET请求,并且要求返回JavaScript 4 、CORS CORS 如果浏览器支持HTML5,那么就可以一劳永逸地使用新的跨域策略:CORS了 CORS全称Cross - Origin Resource Sharing,是HTML5规范定义的如何跨域访问资源 Origin表示本域,也就是浏览器当前页面的域。当JavaScript向外域(如sina.com)发起请求后,浏览器收到响应后,首先检查Access - Control - Allow - Origin是否包含本域,如果是,则此次跨域请求成功,如果不是,则请求失败,JavaScript将无法获取到响应的任何数据。 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步