Get方式如何传递参数?

求示例代码?想向服务器发送带参数的数据。参数如何传递?... 求示例代码?想向服务器发送带参数的数据。参数如何传递? 展开
 我来答
hzkdbdtb
推荐于2019-10-06 · TA获得超过4629个赞
知道答主
回答量:41
采纳率:100%
帮助的人:1.2万
展开全部
在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为GET。如果网页中的<form>表单元素的method属性被设置为“GET”,浏览器提交这个FORM表单时生成的HTTP请求消息的请求方式也为GET。
使用GET请求方式给WEB服务器传递参数的格式:
http://www.it315.org/counter.jsp?name=zhangsan&password=123
使用GET方式传送的数据量一般限制在1KB以下。
<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>JS</title>
    <style>
        #box{
            width:600px;
            height:200px;
            padding:20px;
            border:1px solid #999;
        }
    </style></head><body>
    <h1>ajax get方式传递参数</h1>
    <hr>
    Number1: <input type="text" id="num1"><br>
    Number2: <input type="text" id="num2"><br>
    <button onclick="loadHtml()">加载</button>
    <div id="box"></div>
    <script>
        function loadHtml(){            //获取表单中的数据
            var num1 = document.getElementById('num1').value;            var num2 = document.getElementById('num2').value;            //实例化 XMLHttpRequest对象
            if(window.XMLHttpRequest){                //非IE
                var xhr = new XMLHttpRequest();

            }else{                var xhr = new ActiveXobject('Microsoft.XMLHTTP');
            }            //给xhr 绑定事件 检测请求的过程            xhr.onreadystatechange = function(){
                console.log(xhr.readyState);                //如果成功接收到响应
                if(xhr.status == 200 && xhr.readyState == 4){
                    document.getElementById('box').innerHTML = xhr.responseText;
                }
            }            //进行请求的初始化            xhr.open('get', 'js.php?n1='+num1+'&n2='+num2, true);            //正式发送请求            xhr.send();
        }    </script></body></html>
        
        js获取get方式传递的参数
 String.prototype.GetValue= function(parm) {  
   var reg = new RegExp("(^|&)"+ parm +"=([^&]*)(&|$)");  
   var r = this.substr(this.indexOf("\?")+1).match(reg);  
   if (r!=null) return unescape(r[2]); return null;  
 }
完整测试代码
test.html<!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" />
<title>无标题文档</title>


<script>
String.prototype.getValue= function(parm) {  
var reg = new RegExp("(^|&)"+ parm +"=([^&]*)(&|$)");  
var r = this.substr(this.indexOf("\?")+1).match(reg);  
if (r!=null) return unescape(r[2]); return null;  


function init(){
var url = window.location.href;
if(url.getValue('key1') == null){
alert('没有传递参数');
}else{
alert('传递参数:key1=' + url.getValue('key1'));
alert('传递参数:key2=' + url.getValue('key2'));
}
}
</script>
</head>
<body onload="init();">
<input type="button" onclick="window.location=window.location + '?key1=value1&key2=value2';return false;" value="传递参数"/>
</body>
</html>
GET方式的请求:
直接在浏览器地址栏中输入访问地址,form元素不需要设置method属性,或设置为get。GET方式的请求会将请求参数的名和值转换成字符串,并附加在原URL之后,因此可以在地址栏中看到请求参数名和值;且GET请求传送的数据量较小,一般不能大于2kb;
POST方式的请求:
这种方式提倡使用提交表单的方式来发送,且需要设置form元素的method属性为post。POST方式传送的数据量较大,通常认为POST请求参数的大小不受限制,但往往取决于服务器的限制,POST请求传输的数据量总比GET传输的数据量大,而且POST方式发送的请求参数以及对应的值放在HTML HEADER中传输,用户不能在地址栏里看到请求参数值,安全性相对较高。

由上,我们通常采用POST方式发送请求,如果需要传递的参数是普通字符串,而且仅需传递少量参数,可以选择使用GET方式发送请求参数,GET方式发送的请求参数被附加到地址栏的URL之后,地址栏的URL将会变成如下形式:
url?param1=value1&param2=value2&......paramN=valueN
URL和参数之间以?分隔,而多个参数之间以&分隔
var opt ={  
                    url : urlConfig.interfaceUrl.project_interfaceConfig.getProjectSets,  
                    type : 'GET',  
                    data : {  
                        hid : hospId  
                    }  
                };  
            alert(JSON.stringify(opt));  
            ri.getData(opt,function(data){  
                alert(1111);  
                alert(JSON.stringify(data));  
                    //$scope.projectSets = data.data.projectSets;     
            });  

[javascript] view plain copy
define(function (require, exports, module) {  
    var pageJob = require('../action/pagejob');  
    var filterData = require('../kit/filterData').interfaceUrl;  
    var urlConfig = require('../interface/config');  
    var ri = require('../kit/useInterface');  

[javascript] view plain copy
var getData = function(param,callback,failure,text,timeOutText){  
    var url = param.url || '';  
    if(param.isShowLoading){  
        loadingPopStartTime = new Date().getTime();  
        getInterfacePop.window('open');  
    }  
    isTimeout = false;  
    $.ajax({  
        url : url,  
        type : param.type || "POST",  
        data : param.data,  
        success : function(data){  
            if(typeof data == 'string'){  
                data = JSON.parse(data);  
            }  
            if(isTimeout){  
                return ;  
            }  
            isTimeout = true;  
            clearTimeout(timer);  
            openLoadingPop(function(){  
                if(data.code == "A00000"){  
                    // A00000 表示成功  
                    callback && callback(data);  
                } else {  
                    $.messager.alert('来自系统的消息',text || data.data);  
                    failure && failure(data);  
                }  
            });  
  
        }  
    });  
  
  
    var timer = setTimeout(function(){  
        if(isTimeout){  
            return ;  
        }  
        isTimeout = true;  
        $.messager.alert('来自系统的消息',timeOutText || '当前网络异常,无法连接服务器。请重新尝试。','warning');  
        failure && failure({});  
        getInterfacePop.window('close');  
    },TIMEOUT);  
};  

主要是这里的data,这种写法,URL中,会如下
[javascript] view plain copy
data : {  
                        hid : hospId  
                    }  

dn.net/postedit?hid=79

如果
data : hospId
这种写法,
url如下:
dn.net/postedit?79
恩,all
使用GET方式传递参数
在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为GET。
如果网页中的<form>表单元素的method属性被设置为了“GET”,浏览器提交这个FORM表单时生成的HTTP请求消息的请求方式也为GET。
使用GET请求方式给WEB服务器传递参数的格式:
       http://www.ititit.net/iet.jsp?name=zhangsan&password=123
使用GET方式传送的数据量一般限制在1KB以下。

解析对应的url取出想要的参数值可以这样做:
[javascript] view plain copy
   
function request(pata)  
    {   
        var url = location.href;   
        var paraString = url.substring(url.indexOf("?")+1,url.length).split("&");  
        var paraObj = {}   
        for (i=0; j=paraString[i]; i++){   
        paraObj[j.substring(0,j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=")+1,j.length);   
        }   
        var returnValue = paraObj[pata.toLowerCase()];   
        if(typeof(returnValue)=="undefined"){   
        return "";   
        }else{   
           return returnValue;  
        }

参考资料

get.CSDN[引用时间2018-5-3]

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式