获取JavaScript脚本

课后整理 2020-12-20

设计响应信息为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脚本极易引发安全隐患。