表单未通过Firefox提交

时间:2018-03-09 20:25:17

标签: html ajax forms laravel firefox

我的表格在Chrome,Safari上完美运行,但不是Firefox。

尝试#1

options: { name: '[name].[ext]' }

尝试#2

<form id="subscribe-form" class="footer-sign-up" action="/subscribe" method="POST">
    <input type="text" placeholder="First Name" name="first_name" id="fname" required>
    <input type="text" placeholder="Last Name" name="last_name" id="lname" required>
    <input id="footer-email" type="text" placeholder="Your Email Address" name="email" required>


    <input type="submit" id="subscribe" class="signupbtn" value="sign up">

</form>

结果

enter image description here

网络标签

enter image description here

标题 enter image description here

PARAMS enter image description here

问题

如何继续进行调试?

我现在对任何建议持开放态度。

任何提示/建议/帮助都将非常感谢!

2 个答案:

答案 0 :(得分:1)

我想我可能找到了一些东西;如果你通过AJAX提交,但没有阻止提交页面,那么你就会遇到问题。

将部分代码更改为:

$('#subscribe').click(function(e){
  e.preventDefault();
  ...

这应该只提交AJAX,而不是刷新页面。

https://www.dropbox.com/s/s2q8pspwpmujy5b/Screenshot%202018-03-09%2016.03.14.png?dl=0

我也可以通过将button type="submit"更改为button type="button"来通过FireFox提交,这样它就无法在网页上原生提交页面。

答案 1 :(得分:0)

您需要在表单中添加CSRF令牌。假设这是一个刀片文件:

<form id="subscribe-form" class="footer-sign-up" action="/subscribe" method="POST">
  {{ csrf_field() }}
  <input type="text" placeholder="First Name" name="first_name" id="fname" required>
  <input type="text" placeholder="Last Name" name="last_name" id="lname" required>
  <input id="footer-email" type="text" placeholder="Your Email Address" name="email" required>
<input type="submit" id="subscribe" class="signupbtn" value="sign up">

当Laravel中的页面加载时,您可以打印CSRF或跨站点请求伪造令牌,该令牌在一定时间内有效。任何POST请求都需要有一个当前的请求,否则Laravel会给你一个页面过期错误。