ajax+h5+url解析

本文介绍了一个HTML页面如何通过JavaScript实现与用户的交互,包括获取URL参数并填充到表单中,以及通过Ajax请求与服务器端进行数据交换,展示服务器返回的数据。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
        .container {
		/* background-color: gray; */
            width: 500px;
			height:500px;
			position:absolute;
			left:50%;
			margin-left:-250px;
			top:50%;
			margin-top:-190px
           /* 整个大的div的长度*/
        }
	.input {
    /* position: absolute; */
     font-size: 15px;
	height:30px;
	width: 500px;
}
.btton{
 font-size: 20px;
	height:30px;
	width: 90px;
}
	 </style>
</head>
<body>  
<div class="container">
    <form method=get action="http://localhost/cgi-bin/test6.cgi">       <!-- 跳转链接到cgi程序 -->
       url的值:<input class="input" id="result1" type="text" name="i1" value="点击获取按钮获得参数"/>
	   <p></p>
       bck_url的值:<input class="input" id="result2" type="text", name="i2" value="点击获取按钮获得参数"/>  
	    <p></p>
	    <p></p>
	   <input class="btton" id="modify" type='button' name="callcpp" value="获取参数" onclick="resCalc();"  />
	    <input class="btton" type="submit"/>  
     </form>  
</div>


<h2>获得cgi程序的返回值</h2>
<button type="button" onclick="loadXMLDoc()">返回数据</button>
<div id="myDiv"></div>

<!-- 在js中获取URL传递参数 -->
<script type="text/javascript">
        function UrlSearch() {
            var name, value;
            var str = "http://www.example.com/number_checking?{'url':'http://ovuhjq3qc.bkt.clouddn.com/2017-11-1617:20:22-920-.png','bkg_url':'http://ovuhjq3qc.bkt//.clouddn.com/2017-11-1617:20:22-921-.png'}"
			// var str = "http://www.example.com/number_checking?{'url':'htt/povuhjq3qc','bkg_url':'httpovuhjq3qc1'}"
            var num = str.indexOf("?")             // 获得接口?的位置 
            str = str.substr(num + 1); //取得所有参数  获得?后面的所有的字符串       
            str = str.substring(1, str.length - 1);          //字符串分割
            var arr = str.split(","); //各个参数放到数组里,参数以,分开     
            for (var i = 0; i < arr.length; i++) {
                num = arr[i].indexOf(":");        //获取:所在的位置
                if (num > 0) {
                    //name=arr[i].substring(0,num);
                    name = arr[i].substring(1, num - 1);     //获取参数的名称
                    value = arr[i].substr(num + 1);          //获得参数的值
                    value = value.substring(1, value.length - 1);      
                    this[name] = value;
                }
            }
        }
        var Request = new UrlSearch(); //实例化
        var url = Request.url;         //获得参数URL的值
        var bkg_url = Request.bkg_url; //获得参数bkg_url的值
    </script>

<!-- 	把获取的参数的值放在表单对应的框中 -->
<script type="text/javascript">
function resCalc()
{
var input1=document.getElementById("result1");
var input2=document.getElementById("result2");
var btn=document.getElementById("modify");
	input1.value=url;
	input2.value=bkg_url;
	//input2.value="78";

   alert("已获得参数值,请点击提交按钮进行提交数据");

 } 
</script>
<!-- Ajax数据请求,获得cgi程序的返回值 -->
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)          //AJAX利用一个构建到所有现代浏览器内部的对象-XMLHttpRequest-来实现发送和接收HTTP请求与响应信息
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();    //创建一个XMLHttpRequest 对象用于在后台与服务器交换数据
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");      //浏览器使用ActiveX 对象
  }
xmlhttp.onreadystatechange=function()           //onreadystatechange 是一个事件句柄。当 XMLHttpRequest 对象的状态发生改变时,会触发此函数。状态从 0                                                         (uninitialized) 到 4 (complete) 进行变化。仅在状态为 4 时,我们才执行代码
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)       //xmlHttp.status的值表示HTTP状态表,当值为200时表示交易成功 
    { 
		//VAR RESPONSEtEXT = XMLHTTP.RESPONSEtEXT;
		                        //         IF (RESPONSEtEXT){
		                       //               ALERT(RESPONSEtEXT);//SHOWiNFO("USERNAME_NOTICE",RESPONSEtEXT);
		                      //           }
		                      //   }ELSE{
		                      //           ALERT("ERROR!");
		                     //    }
	 var getStr=xmlhttp.responseText;       //获得返回的结果
	  var number = getStr.indexOf("{")       //获得的返回值把opencv第三方库的版权声明打印出来,c++中去不掉,这里把声明去掉
      //  var  getStr1 =getStr.substr(0,num + 1); //取得所有参数 
	  var  getStr1 =getStr.substr(number);     
		    alert(getStr1);
 // document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  document.getElementById("myDiv").innerHTML=getStr1;        //把获得的返回值放进myDiv中
	//var getStr=xmlhttp.responseText;
	//alert(getStr);
            var param = getStr1;
            var href = "http://www.baidu.com?param=" + param;      //把返回值链接到URL
            alert(href);
    }
  }

 // var url11="/cgi-bin/test2.cgi?i1=http%3A%2F%2Fovuhjq3qc.bkt.clouddn.com%2F2017-11-1617%3A20%3A22-920-.png&i2=http%3A%2F%2Fovuhjq3qc.bkt%2F%2F.clouddn.com%2F2017-11-1617%3A20%3A22-921-.png";
 //  var url11="/cgi-bin/test2.cgi";
xmlhttp.open("GET","/cgi-bin/test6.cgi",true);     //指向获得指定cgi的返回值
xmlhttp.send();
}
</script>

</body>  

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值