2011-01-27 9 views
0

jQueryを使用して、自分のフォームからレールアプリケーションに変数を送信したいと思います。これは現在可能ですが、現在は以下のコードがあり、 dbに挿入されます。jQueryを使用してrailsアプリケーションにパラメータを送信する

私は間違っていますか?

var dataString = 'author='+ name + '&book=' + book + '&genre=' + genre; 

$.ajax({ 
type: "POST", 
url: "http://localhost:3000/books", 
data: dataString, 
success: function() { 
$('#form').html("<div id='message'></div>"); 
$('#message').html("<h2>Book Submitted!</h2>") 
.append("<p>You will be notified soon!</p>") 
.hide() 
.fadeIn(1500, function() { 
$('#message').append("<img id='checkmark' src='images/check.png' />"); 
}); 

おかげ

+0

何がうまくいかないのですか?エラーメッセージが表示されますか?この操作を実行するとログのコピーがありますか? –

答えて

0

で、問題はRailsがあなたが真正トークンを渡すことを期待しているということはおそらくです。別のアプリケーションからデータを渡すため、使用できないため、次のいずれかを実行する必要があります。具体的な行動のために

、偽造から保護することはできません。

 
protect_from_forgery :except => [:create, :update] 

または全体のコントローラ用:

 
skip_before_filter :verify_authenticity_token 
0

は、クエリでトークンを使用するようにしてください。これはXSS攻撃からの保護です。例えば

'authenticity_token': AUTH_TOKEN 

var dataString = 'author='+ name + '&book=' + book + '&genre=' + genre + '&authenticity_token='+AUTH_TOKEN; 
-1

私はあなたがRailsのアプリでフォームからパラメータを渡すためのjQueryを必要とは思いません。

通常、コマンドrails generate scaffoldは、新しいリソースの編集と作成のためのビューを生成します。これらのビューには、jQueryなしでデータベースにパラメータを渡すフォームが含まれています。あなたが別のアプリケーション(Railsの、HTML、PHPまたはその他)からパラメータを渡している場合はここ

が素敵なチュートリアル http://railstutorial.org/chapters/a-demo-app#top

+0

これは非レールアプリからParamを渡しています。標準の.HTMLポップアップウィンドウ –

+0

あなたのビューでparams [:param_name]を使わないのはなぜですか? –

0

あなたのURLパラメータの絶対パスは私の疑念を喚起されます。

javascript's same origin policyのために、ページが配信されるのと同じサーバーに対してのみAjaxコールを送信できます。

あなたのhtmlページもhttp://localhost:3000でホストされていますか?そうでなければあなたの問題です。

真正性トークンについての回答を見てください。

関連する問題