2016-05-10 18 views
0

から提出されました私は別のサイトからフォームを介して情報を受け取るレールアプリケーションに取り組んでいます。フォームが送信されたサイトを検出できるようにするため、たとえばtest.com/contactからのメッセージのみを処理するように検証を設定できます。私のroutes.rbをでウェブサイトフォームのURLを取得投稿は

match '/example', to: 'controller#action1', via: [:get] 

他のウェブサイト上のフォームは(と言うその例えばtest.com/contact)私は

def action1 
    puts "Hello world" 
    stuff = params.keys  
    puts "****INFO*************#{stuff}*******************" 
    render nothing: true 
    end 
を持って私のコントローラでは、私の railsapp.com/example

にAJAXを使用してデータを送信します

私はそれをテストしてコンソールの出力を見ると、取得要求がどこから来たのかを示すパラメータで何も見つかりません:

Parameters: {"callback"=>"jQuery545332_1462068", "name"=>"something", "email"=>"[email protected]", "message"=>"something", "_subject"=>"Message something", "_"=>"1462891691071"} 
Hello world 
****INFO*************["callback", "name", "email", "message", "_subject", "_", "controller", "action"]******************* 

どのようなウェブサイトのメッセージが表示されますか?

答えて

1

あなたのコントローラにはrequestオブジェクトにアクセスできます。

この属性の名前はreferrerです。

request.referrerリクエストが送信されたサイトを取得します。

+0

ありがとうございました!以前はrequest.hostで遊んでいましたが、ドキュメントを見つけられず、リクエストオブジェクトで何ができるのか分かりませんでした。 – jtlindsey

+2

@jtlindseyは、リファラーヘッダーが偽装される可能性があることに注意しています。 – DickieBoy

関連する問題