Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在表单发布之前清除查询字符串的referer_Javascript - Fatal编程技术网

Javascript 在表单发布之前清除查询字符串的referer

Javascript 在表单发布之前清除查询字符串的referer,javascript,Javascript,我有一个表单,可以发布到第三方服务以进行验证和信息捕获。在第三方后端,您可以为错误指定URL,其中一个选项是“引用URL” 这看起来很完美。用户发布了一个无效的表单,并且他们所在的页面“重新加载”(不是真的,但这是印象),错误消息取自一个查询字符串,如下所示: http://somesite.com/?errorMessages=some%20message~~~some%20other%20message~~~etc 我解析出单独的错误消息,并将它们推送到一个DIV中,该DIV会告知用户出了

我有一个表单,可以发布到第三方服务以进行验证和信息捕获。在第三方后端,您可以为错误指定URL,其中一个选项是“引用URL”

这看起来很完美。用户发布了一个无效的表单,并且他们所在的页面“重新加载”(不是真的,但这是印象),错误消息取自一个查询字符串,如下所示:

http://somesite.com/?errorMessages=some%20message~~~some%20other%20message~~~etc
我解析出单独的错误消息,并将它们推送到一个DIV中,该DIV会告知用户出了什么问题。到目前为止还不错

然而,用户继续破坏表单,当他们再次发布时,推荐人现在是包括错误消息在内的整个URL。服务器回复原始错误消息(毕竟是引用者!)以及任何剩余问题:

http://somesite.com/?errorMessages=some%20message~~~some%20other%20message~~~etc&errorMessages=new%20message~~~another%20new%20message~~~etc
您可以看到问题,但要清楚:

  • 形式足够长,可以开始;这些未经检查的附件最终会导致查询字符串超出浏览器限制,并导致错误
  • 解析算法不仅仅报告最新的问题。它还在报告最初的问题
  • 对于一个简单的问题来说,这是一个很长的背景故事:

    在submit事件中,是否有方法使用JavaScript从引用URL中清除查询字符串?我不想做任何引用欺骗或避免任何合法的安全问题,我只想能够发送“真”引用页面减去查询字符串


    我已经在使用jQuery,所以任何答案都可以免费使用它。

    这里有一种方法:

  • 在第三方网站上发布的帖子带有推荐人
  • 第三方站点重定向到
  • 在服务器端的HTTP请求处理程序(不管是什么)中,您将错误消息放入会话(服务器端),并重定向到
  • 呈现页面时,使用会话中的错误消息(必要时清除它们)。我相信这些被称为flash会话变量

  • 啊,太有趣了!因此,它基本上再次重定向到自身(第二次重定向到干净的URL),首先将所需的错误消息存储在会话变量中。我会让你知道事情的进展!坦率地说,我还没有机会测试这个。目前最简单的方法是使用静态URL,并承担一些不面向客户的后果。这就是说,这似乎是一个非常有效的方法,当机会来临时我会采取这种方法,所以我会接受这个答案。