在javascript

时间:2016-04-18 12:05:04

标签: javascript html

我在这个论坛的某处读到我可以使用这样的javascript创建表单:

<a href="#" onclick="postLogin()">Log me into this website</a>

<script type="text/javascript">
function postLogin() {
    var form = document.createElement("form");
    form.setAttribute("method", "post");
    form.setAttribute("action", "index2.html");

    var params = {checktype: 'uid', user: 'adam', password: 'pass1234', profile: 'dart', defaultdb: 'kts'};
    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);

            form.appendChild(hiddenField);
         }
    }

    document.body.appendChild(form);
    form.submit();
}
</script>

在此表单中,它使用POST方法并将导航到index2.html。在我的index2.html中,我需要这些参数,例如checktypeuserpassword来继续处理某些内容。如何在index2.html中阅读这些参数。我已经尝试过类似的东西:

   <script>
                var query = window.location.search;
                .....
    </script>

在我的index2.html中,但返回query没有显示任何内容。我认为这是因为在POST方法中,url中没有参数,因此我无法使用window.location.search读取它们。任何人都可以知道我如何阅读使用POST方法发送的参数?

2 个答案:

答案 0 :(得分:0)

如果要开发动态Web应用程序,则应使用服务器端语言(以生成html)。基本上是的,您可以使用javascript访问查询参数。

您可以在index2.html中定义一个函数:

function getQueryParam ( name , queryString ) {
    var match = RegExp( name + '=([^&]*)' ).exec( queryString || location.search );
    return match && decodeURIComponent( match[ 1 ] );
}

再次在index2.html中使用此函数访问所需的参数(例如参数&#39; checkType&#39;):

getQueryParam('checkType')

当然这些应该在&#39;脚本&#39;标签

答案 1 :(得分:0)

你不能。

浏览器无法向客户端JavaScript提供请求正文中的数据。

您可以使用服务器端代码只读