2016-04-02 51 views
2

私は次のコードを持つhtmlページを持っています。ブラウザがリファラーを送信しないのはなぜですか?

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

ユーザーがフォームを送信したときに、ブラウザにhttpリクエストの参照ヘッダーフィールドが含まれません。それはなぜでしょうか?

<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>

と第二::

+0

まず、Formspreeの統計情報として「FormspreeはHTMLファイルとして表示されるページでは動作しません」というWebサーバー経由でこのページを開くようにしてください。このHTMLをローカルに開いていますか? – statosdotcom

+0

私はここにあなたの方法を見つけると思います:http://stackoverflow.com/a/266013/5885018 – statosdotcom

答えて

0
  1. サイトをコンピュータのファイルシステムの静的なHTMLファイルとしてブラウザで開いてテストしています。この場合、URLはhttp://またはhttps://で開始しません。ブラウザはこれらのページを通常のWebリソースとして扱わず、フォームを送信するときに自動的に「Referer」ヘッダを送信しないため、これは機能しません。 Formspreeはヘッダーが機能することを要求します。これは、ローカルWebサーバーからWebリソースとしてHTMLファイルを開くだけで解決できます。 MacまたはLinuxの場合は、python -m SimpleHTTPServer 8000またはHTMLファイルディレクトリを入力し、ブラウザのhttp://localhost:8000にアクセスしてください。 Windowsの場合は、次のスーパーシンプルなWebサーバー(Chrome用Webサーバー、thttpdまたはQuickshare)のいずれかをインストールしてみてください。

  2. あなたは、SafariのモバイルやChrome、Firefoxやエッジ、最近ではありませんいくつかの他のブラウザを古いSafariのバージョンを使用しています。この場合、サイトがFormspreeのhttps以外のバージョンにコンテンツを投稿することを許可しなかったFormspreeに関する古いHSTSポリシーの犠牲者になった可能性があります。この場合、フォームのaction =属性をhttps://formspree.io/に変更してください。

0

まず指定formspree atributtesを使用しますが、リセットする必要がありますので、多分あなたは、(formspreeサイトのような)別のサイトで前にフォームを試してみましたそれをformspreeサイトに入れて、あなたのサイトで直接試してみてください。そうすれば、もう一度確認する必要があります。

は私がローカルに自分のWebページを開いたために、問題が起こったコメントstatosdotcomとして

0

...それはあなたのために働く願っています。

2

私はHTMLページの<head>セクションに<meta name="referrer" content="origin">を追加することによって、これを修正しました。

関連する問題