1.原生ajax的代码
<script>
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.status==200||xhr.status==304)
{
if(xhr.readyState==4)
{
console.log(xhr.responseText);
}
}
}
xhr.open("GET","api.txt",true);
xhr.send(null);
</script>
2.什么是ajax(asynchronous javascript and xml)
页面在不刷新的情况下,偷偷地发送HTTP请求到服务器,请求回来的数据局部改变页面。需要使用XMLHttpRequest对象来实现。
3.readyState的值有几个?
4.HTTP状态码
200 成功
304 没有改变
404 没有找到
302 临时移动
500 服务器错误
5、三种方法将字符串变为json
<script>
var jsonstring='{"name":"郭丹丹"}';
//第一种方法,注意写法
console.log(typeof eval("("+jsonstring+")"));
//第二种方法,注意写法
console.log(typeof JSON.parse(jsonstring));
//第三种方法
var obj=new Function("return"+jsonstring);
console.log(typeof obj())
</script>
6、GET请求和POST请求的区别
1、GET请求是http的URL地址带信息,POST请求是上行报文体带信息。
2、GET请求不安全,便于分享网址;
3、POST请求安全,可以携带长信息。
7、跨域
(留空)
8、简述Ajax中javaScript脚本缓存问题,如何解决?
Ajax为了效率,所以对同一个URL文件不会多次发出请求,而是会使用上一次的副本。
所以要确保对同一个文件的多次Ajax请求的URL不一样。所以:
方法就是两种: 时间戳、随机数。
$.get("api.php",{z:Math.random()},function(){})
$.get("api.php",{z:Date.parse(new Date())},function(){})
9、Ajax有哪些优点和缺点?
10、如何处理Ajax的中文乱码问题?
最好的方法就是将所有的中文用encodeURI函数处理变为英语字符,比如"%E6%88%91",发送到服务器的时候服务器解码;同样的,服务器发给浏览器的response中的中文,也要被PHP等语言用encodeURI处理,在本地decodeURI解码。
11、请写出一个最熟悉的JavaScript框架(架包),以及该框架中Ajax的使用方法。
jQuery中:
$.get("url",{username:"小明},function(data){
});
$.post("url",{username:"小明},function(data){
});
$.Ajax({
dataType : "jsonp",
url : "api.php?cb=?",
success : function(data){
}
});
12、如何解决Ajax的安全性问题。
① 密码要用POST请求发送,
② 如果是JSONP要请求可信任的网站
3.发送请求前用正则表达式验证数据有效性,同时服务器端也要验证。
13、使用open方法打开具有浏览器工具条,地址栏,菜单栏的窗口,下列选项正确的是()
A. open("x.html","HI","toolba=1,scrollbars=1,status=1");
B. open("HI","scrollbars=1,location=1,status=1");
C. open("x.html","status=yes,menubar=1,location=1");
D. open("x.html","HI","toobla=yes,menubar=1,location=1");
14、iE6兼容除创建xhr(每当XHR对象的readyState属性变化的时候都会触发onreadystatechange事件)
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
15、JavaScript如何得到HTTP的请求头信息和返回的头信息?
使用API:xhr.getResponseHeader() 、 xhr.getRequestHeader();
我曾经用这个东西做过倒计时秒杀特效,获得服务器的时间,防止用户更改本地时间。
<script type="text/javascript">
function fun(){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState == 2){
console.log(xhr.getResponseHeader("Date"))
}
}
xhr.open("get","1.txt",true);
xhr.send(null);
}
</script>