设计响应信息为JavaScript代码,与JSON数据不同,它是可执行的命令或脚本。
【示例】在服务器端请求文件中包含下面一个函数。
function(){
var d = new Date()
return d.toString();
}
然后在客户端执行下面的请求。
<input name="submit" type="button" id="submit" value="向服务器发出请求" />
<script>
window.onload = function(){ //页面初始化
var b = document.getElementsByTagName("input")[0];
b.onclick = function(){
var xhr = createXHR(); //实例化XMLHttpRequest对象
xhr.open("GET","server.js", true); //建立连接,要求异步响应
xhr.onreadystatechange = function(){ //绑定响应状态事件监听函数
if(xhr.readyState == 4){ //监听readyState状态
if (xhr.status == 200 || xhr.status == 0){ //监听HTTP状态码
var info = xhr.responseText;
var o = eval("("+info+")" + "()"); //用eval()把字符串转换为脚本
console.log(o); //返回客户端当前日期
}
}
}
xhr.send(); //发送请求
}
}
</script>
注意,使用eval()方法时,在字符串前后附加两个小括号:一个是包含函数结构体的,一个是表示调用函数的。不建议直接使用JavaScript代码作为响应格式,因为它不能够传递更丰富的信息,同时JavaScript脚本极易引发安全隐患。