【问题标题】:Pass client side js variable into server side jscript将客户端 js 变量传递到服务器端 jscript
【发布时间】:2010-05-05 10:12:26
【问题描述】:

如何使用客户端 js 从浏览器 url 获取查询字符串并将其设置为变量以在某些服务器端脚本中使用?

客户端脚本:

var project = getQueryString("P");

function getQueryString(param) {
    var queryString = window.location.search.substring(1);
    splitQueryString = queryString.split("&");

    for (i=0; i<splitQueryString.length; i++) {
        query = splitQueryString[i].split("=");
        if (query[i] == param) {
        return query[1];
        }
    }

}

服务器端脚本:

response.write ('<td><a href="/index.asp?P=' + project + ">' + obj.BODY[i].NAME + '</a></td>');

【问题讨论】:

    标签: variables client-side server-side javascript


    【解决方案1】:

    在 ASP 上,我认为您正在寻找 String(Request.queryString("P"))

    您必须使用 String 构造函数,因为 queryString 方法返回一个集合。

    【讨论】:

    • 这并不能解决我的实际问题,可以简单地回答为“不可能做到”,但这确实解决了查询字符串的问题。对于 ASP,我发现 Request.QueryString.Item("P") 通过允许我将集合中的特定对象作为字符串访问而不是转换它来更好地工作。
    【解决方案2】:

    我过去曾使用 jQuery 插件 getUrlParam 来执行此操作。效果很好。

    var project = $(document).getUrlParam("P");
    

    【讨论】:

    • 谢谢,但我正在寻找一种不需要使用 js 库的方法。
    • 你可以看看他的插件代码,看看它是如何完成的,然后自己做,而不依赖于 jQuery 本身。
    • +1 因为我过去做过同样的事情而不依赖于 JQuery
    【解决方案3】:

    如果不通过一些 HTTP 请求(可能是 XHR)将值传递给服务器,则无法在客户端设置任何变量以在服务器端脚本中使用。所以也许我误解了你的问题。

    服务器端脚本通常用于生成发送到客户端的 HTML,因此服务器端脚本在执行之前客户端可以做任何事情,更不用说服务器了是完全不同的内存空间。

    服务器端脚本也可以接收来自客户端的数据,但只能通过来自客户端的另一个 HTTP 请求,如上所述。

    【讨论】:

    • 也许我的问题措辞有误。我知道我不能在不传递的情况下设置要在服务器端使用的变量客户端,我的问题是如何将该变量从客户端传递到服务器(而不实际提交表单或任何东西)。我在服务器端输出几个对象,并希望根据 URL 中的参数链接它们,我只能在客户端获取。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多