JS动态构造GET请求

有的时候,会有这样一种情况,当我们需要收集一些用户的页面数据或者浏览器、屏幕分辨率等时,而且这些数据是尽可能的真实的,如果让用户填写一个表单来提交,这有很多人是不愿意去做的,数据亦缺乏准确性,解决方法是使用JS。使用Javascript脚本就能轻松的取得我们需要的数据,但怎么提交到服务器就成了一个问题,使用AJAX确实是一个优越而又可行的办法,可是,有的时候我们不用表现的如此优雅,直接使用JS动态构造一个GET请求,不由分说的提交到服务器,问题也就解决了,这过程中同样不需要用户的介入。
众所周知的一件事情是:使用script标签,能在页面中新开一个通信连接(当然你可以说iframe,object标签也可以),如果我们将script标签的src指向一个php文件,那么它就可以向服务器提交数据了。动态创建script标签的方法有两种,其实实质上是一样的。

这里先创建了一个js文件,供后面将动态创建的元素的src直接指向该文件s.js内容很简单:

  1. if(v !=''){   
  2.    alert(v);   
  3. }   
  4. else{   
  5.    alert('生活于三山两水间,无比惬意释然。');   
  6. }  


1、使用createElement动态创建script元素

  1. <scripttype="text/javascript">  
  2. varv='';   
  3. try{   
  4. v='7777';   
  5. varscript_el=document.createElement("script");   
  6. script_el.type="text/javascript";   
  7. script_el.src="s.js?"+Math.random();   
  8. h=document.getElementsByTagName("head")[0];   
  9. h.appendChild(script_el);   
  10. }   
  11. catch(e){   
  12. alert(e);   
  13. }   
  14. v='改哈子看看有嘛效果';   
  15. </script>  


2、使用document.write直接写入

  1. <scripttype="text/javascript">  
  2. varv='其实这个例子举得非常失败,我。。。';   
  3. document.write('<scripttype="text\/javascript"src="s.js?"'+Math.random()+'><\/script>');   
  4. </script>  

这两种都能轻松的动态创建一个script标签,来构造get请求,可以根据实际情况选择使用2种方法。

ajax中的跨域问题也就可以这么解决了,获取远程服务器数据,不再是难题,这种方法不好使用XML而已。

用createElement创建了script标签,使用appendChild方法进行附加。

本文永久地址:https://sjolzy.cn/JS-GET-request-for-the-dynamic-structure.html

--EOF--

随机文章

添加新评论