0

Rails アプリを作成していて、jQuery で AJAX 呼び出しを実行しようとしています。AJAX 呼び出し (POST) を実行すると、メソッドからエラーが発生します。しかし、私は問題が何であるかわかりません:(

「GET」メソッドを使用している場合はすべて機能しましたが、「POST」に変更するとエラーが発生します(はい、route.rbを変更しました:))

jQuery

$.ajax({
  url: "/login/checkLogin/",
  dataType: "json",
  data: data,
  type: 'post',
}).done(function(response){
  console.log(response);
})

方法

ldap = Net::LDAP.new
ldap.host = "***"
ldap.port = ***
ldap.auth %[#{params[:login_username]}], params[:login_password]

if ldap.bind
 session['loggedin'] = true
 respond_with "1".to_json
else
 session['loggedin'] = false
 respond_with "0".to_json
end

エラーメッセージ (コンソールから)

undefined method `"0"_url'

ありがとう

4

2 に答える 2

3

これは Rails マジックの裏側です :) デフォルトでは、ブロックが指定されていない場合やテンプレートが利用できない場合、Rails はActionController::Responderを使用して Respond_with を処理します。'POST' メソッド (REST 'create') および xml や json などの非 html 形式の場合、エンコードされたリソース、ステータス コード (:success)、およびリソースの場所を含む応答を生成します。そのため、渡されたリソースの URI を見つけようとし、このステップで失敗します。

:location => nilデフォルトを上書きするオプションを渡すか、明示的なrespond_toブロックを使用するだけです

respond_with "0".to_json, :location => nil

また

respond_to do |format|
  format.json {render :json => "0".to_json}
end
于 2012-05-26T08:27:15.287 に答える
0

contentType: "application/json; charset=utf-8",$.ajax({...})を入れてみてください

于 2012-05-25T15:07:21.453 に答える