使用javascript / jquery检索发布数据

时间:2014-03-26 09:49:26

标签: javascript http httprequest form-submit

我想通过仅使用客户端脚本(javascript)将对象传递给新页面, 我想在新页面加载时读回数据,但我找不到任何教程或方法来获取它。

function postToURL(path, parameters) {
    var form = $('<form></form>');

    form.attr("method", "post");
    form.attr("action", path);

    $.each(parameters, function(key, value) {
        var field = $('<input></input>');

        field.attr("type", "hidden");
        field.attr("name", key);
        field.attr("value", value);

        form.append(field);
    });

    // The form needs to be a part of the document in
    // order for us to be able to submit it.
    $(document.body).append(form);
    form.submit();
}

3 个答案:

答案 0 :(得分:2)

发送到服务器以检索当前页面的POST消息不会被浏览器暴露给该页面中的JavaScript,因此您不能。

通过其他技术(例如通过URL或localstorage)传递数据。

答案 1 :(得分:1)

是的,POST数据只能由服务器端处理(例如PHP)。 Javascript在客户端,所以除非POST数据首先传递到服务器端,然后服务器端将其交给客户端(例如Javascript),否则它将永远无法看到该数据。

考虑在上面的代码中使用GET作为您的方法,以便您可以在实际URL中传递参数,以使其可供浏览器/客户端/ Javascript访问。

答案 2 :(得分:0)

parameters可以从JSON编码的字符串中解析。如果您以编程方式(在上一步中)构建参数,如:

parameters = {};
parameters['USA'] = 'Washington DC';
parameters['UK'] = 'London';

您可以通过以下方式创建表示结构化数据的平面JSON字符串:

parametersString = JSON.stringify(parameters);

并最终得到类似的结果:

"{'USA': 'Washington DC', 'UK': 'London'}"

您可以将此字符串存储在 Cookie 中,或存储在网址的查询字符串片段部分中。

您的下一页可以在下一页上回读此值,并通过解码JSON字符串重新创建结构化参数,如:

parameters = JSON.parse(parametersString);

并且您将获得原始数据,您可以在其上运行JQuery的each