我有一个包含以下代码的html页面。
<form method="POST" action="https://formspree.io/email">
<input type="submit" value="SEND"/>
</form>
当用户提交表单时,我的浏览器在http请求中不包含referrer标头字段。为什么不呢?
答案 0 :(得分:3)
我通过将<meta name="referrer" content="origin">
添加到HTML页面的<head>
部分来解决此问题。
答案 1 :(得分:1)
首先使用formspree指定的atributtes:
<form action="https://formspree.io/your@email.com"
method="POST">
<input type="text" name="name">
<input type="email" name="_replyto">
<input type="submit" value="Send">
</form>
&#13;
和第二:也许您之前在其他网站(例如formspree网站)中尝试过该表单,因此您必须在formspree网站中重置它,然后直接在您的网站中进行尝试,因此您必须确认试。
希望它适合你...
答案 2 :(得分:1)
您正在测试您的网站,将其作为计算机文件系统中的静态HTML文件在浏览器中打开。在这种情况下,其URL不会以http://或https://开头。这不起作用,因为浏览器不会将这些页面视为普通的Web资源,因此它们不会自动发送&#34; Referer&#34;提交表单时的标题。 Formspree需要头文件才能工作。如果您只是从本地Web服务器将HTML文件作为Web资源打开,则可以解决此问题。如果您使用的是Mac或Linux,只需键入python -m SimpleHTTPServer 8000或您的HTML文件目录,然后在浏览器中访问http://localhost:8000。如果您使用的是Windows,请尝试安装以下超级简单的Web服务器之一:适用于Chrome的Web服务器,thttpd或Quickshare。
您使用的是旧版Safari,Safari移动版或其他不是最近的Chrome,Firefox或Edge的浏览器。在这种情况下,您可能是我们在Formspree上使用的旧HSTS策略的受害者,该策略不允许网站将内容发布到非https版本的Formspree。在这种情况下,请将您的表单的action =属性更改为https://formspree.io/。
答案 3 :(得分:0)
正如statosdotcom评论的那样,问题就发生了,因为我在本地打开了我的网页。