我想通过仅使用客户端脚本(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();
}
答案 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
。