ajaxリクエストを使用して、レールコントローラのアクションから応答を取得するときに奇妙な動作が発生しました。Rails:jsからAjaxへのリクエストで応答する
$.ajax({
type: 'GET',
url: '/notifications',
success: function(result) {
eval(result);
}
});
def index
respond_to do |format|
format.html { redirect_to root_url, alert: 'Page not accessible' }
format.js
end
end
だからこれrespond_toブロックは、要求を使用する際にRailsのremote: true
オプションで正常に動作しますが、AJAXでちょうどroot_url
に要求をリダイレクトし、それを呼び出します。
json
をAjaxリクエストのdataType
と指定する場合。そのようにJavaScriptは正常に返されますが、有効でないためjson
、eval()
は実行されません。
JavaScript内からのリモートリクエストを開始する方法も、返されたJavaScriptが実行可能なデータ型を指定する方法もありますか?
はしても、トリックを行いませんAJAX呼び出しに
dataType: 'text/javascript',
を指定します。
てみ 'データ型:?「 – Pavan
@jonhue は、あなたのインデックス・アクションで' '場合request.xhrをチェックしてみましたscript''? – cnnr
@pavanあなたの提案をありがとう!後で家に帰るときに試してみよう – jonhue