#(hash)作为服务器的GET参数

时间:2014-02-23 12:51:31

标签: javascript html http browser

有一个网站从用户那里获得一些输入并将其存储在某个地方。现在,在输入字段中,我输入 - naman#jain。现在,客户端将形成一个网址,如www.website.com/?name=naman#jain。 #jain也被发送到服务器。正如我在#浏览器忽略所有内容后所读到的那样。如果我错了,请纠正我。那么这究竟是怎么发生的呢?

我试着在评论中提问 - Usage of hash in URL但找不到合适的答案。

2 个答案:

答案 0 :(得分:0)

提交表单时,表单参数是url编码的。因此输入naman#jain将导致类似

的内容
www.website.com/?name=naman%23jain

这是它发送到服务器的方式。 GET参数被编码回来并被使用。

答案 1 :(得分:0)

您可以通过以下方式访问哈希:

console.log(window.location.hash);

为了能够存储哈希,您可以使用例如以下代码:

$.ajax({
  type: "POST",
  url: "save.php",
  data: { name: $("#name").val(), hash: window.location.hash }
})
  .done(function( msg ) {
    alert( "Data Saved: " + msg );
  });

聚苯乙烯。这是未经测试的,因此它可能无法运行:-)也许有更好的方法来做,就像你可以将哈希保存到隐藏字段然后执行表格序列化。