2016-04-02 67 views
2

我有一个html页面,下面的代码。当用户提交表单为什么我的浏览器不发送任何引用者?

<form method="POST" action="https://formspree.io/email"> 
    <input type="submit" value="SEND"/> 
    </form> 

我的浏览器中不包括http请求引荐头字段。为什么不呢?

+0

首先,请确保您通过Web服务器打开此页面,Formspree不能在作为HTML文件浏览的页面中工作,作为Formspree统计信息。你在本地打开这个HTML吗? – statosdotcom

+0

我想你会在这里找到你的方式:http://stackoverflow.com/a/266013/5885018 – statosdotcom

回答

0
  1. 您正在测试您的网站,方法是在浏览器中将其作为计算机文件系统中的静态HTML文件进行打开。在这种情况下,其URL不会以http://或https://开头。这是行不通的,因为浏览器不会将这些页面视为正常的网页资源,因此当您提交表单时,它们不会自动发送“Referer”标题。 Formspree需要该标题才能起作用。如果您只是从本地Web服务器打开HTML文件作为Web资源,就可以解决这个问题。如果您使用的是Mac或Linux,只需键入python -m SimpleHTTPServer 8000或您的HTML文件目录并在浏览器上访问http://localhost:8000。如果您在Windows上,请尝试安装以下超级简单网络服务器之一:适用于Chrome的Web服务器,thttpd或Quickshare。

  2. 您正在使用旧的Safari版本,Safari移动版或其他一些非Chrome,Firefox或Edge版本的浏览器。在这种情况下,您可能会成为我们在Formspree上使用的旧HSTS策略的受害者,该策略不允许网站将内容发布到非https版本的Formspree。在这种情况下,请将您的表单的action =属性更改为https://formspree.io/

0

首先使用formspree的atributtes注明:

<form action="https://formspree.io/[email protected]" 
 
     method="POST"> 
 
    <input type="text" name="name"> 
 
    <input type="email" name="_replyto"> 
 
    <input type="submit" value="Send"> 
 
</form>

和第二:也许你在其他网站尝试过的形式(如formspree网站),所以你必须重新设置它在formspree网站上,然后直接在你的网站上尝试,所以你将不得不再次确认。

希望它为你工作...

0

由于statosdotcom评论说,这个问题发生,因为我是在本地打开我的网页。

2

我通过将<meta name="referrer" content="origin">添加到我的HTML页面的<head>部分来解决此问题。

相关问题