0

このjqueryの投稿を使用しています

 navigator.geolocation.getCurrentPosition(function(position){
        $.post('/marketplace',{latitude: position.coords.latitude, longitude: position.coords.longitude})
      });

ルート:

post '/marketplace' => 'pages#marketplace'

コントローラーRails.logger.debug('Jquery.POST' + params.inspect)でコンソールに次のように印刷します

Started POST "/marketplace" for 127.0.0.1 at 2011-05-20 13:23:16 +0300
  Processing by PagesController#marketplace as 
  Parameters: {"latitude"=>"44.508851", "longitude"=>"33.600509"}
Jquery.POST{"latitude"=>"44.508851", "longitude"=>"33.600509", "controller"=>"pages", "action"=>"marketplace"}

また、firebug は、緯度 44.508851 と経度 33.600509 が正常に送信されたことを示しています。しかし、ビューには投稿データがありません。= params.inspect

{"action"=>"marketplace", "controller"=>"pages"}

コントローラーで jquery 投稿データにアクセスするにはどうすればよいですか?

*アップデート

@lat = request.params[:latitude]
@long = request.params[:longitude]

ビュー内の両方の nil :(

4

2 に答える 2

0

これにより、作成する必要がある xhr request.for が作成されます

@lat_long={:lat=>request.params[:latitude],:lng=>request.params[:longitude]}
render :text=> @lat_long and return false

コントローラーとjqueryで上記の行を使用します

$.post('/marketplace',{latitude: position.coords.latitude, longitude: position.coords.longitude},function(data) {
   var lat=data.lat;
   var lng=data.lng
 });
于 2011-05-20T09:15:43.650 に答える
0

これは csrf トークンの問題でしょうか? 残りの POST データと一緒に送信されていますか?

jquery-rails プラグインを使用している場合は、処理方法が変更されているため、必ず最新バージョンを入手してください。ドキュメント内にトークンがある場合、プラグインはそれを各 xhr POST リクエストに自動的に挿入する必要がheadあります。詳細については、githubページをご覧ください。

于 2011-05-20T09:50:38.053 に答える