私はCI 2.1アプリケーションでajaxを使ってCSRF作業をしようとしています。CSRFをajax(CI 2.1)と連携させることができません
私はこれについて検索し、いくつかの義務づける方針を見つけましたが、問題を解決するcouln'tいるhttp://ericlbarnes.com/post/10728867961/codeigniter-csrf-protection-with-ajax http://www.beheist.com/index.php/en/blog/csrf-protection-in-codeigniter- 2-0-近い-見て私はここconfigに2つのトークン値
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'token01';
$config['csrf_cookie_name'] = 'token02';
$config['csrf_expire'] = 7200;
ための2つの異なるトークンを設定している http://aymsystems.com/ajax-csrf-protection-codeigniter-20
が私の見解ですが、私はFORM_OPEN
を使用しています私は私が「エラーが発生したと一緒に「500内部サーバーエラー」を取得していますこれを実行すると、あなたが要求したアクションはない非同期呼び出し
<script type="text/javascript">
$(document).ready(function(){
$("#submit").click(
function(){
var form_data = {
username: $("#username").val(),
password: $("#password").val(),
csrf_token_name: $("input[name=token01]").val()
};
$.ajax({
type: "POST",
url: "http://localhost/pis/user",
data: form_data,
success:
function(data){
$("#debug").html(data.message).css({'background-color' : data.bg_color}).fadeIn('slow');
}
});
return false;
});
});
</script>
を作るために、このJavaScriptを使用しています応答として「許可」される。 FirebugはPOSTデータパラメータを正しく表示します。
例:ユーザ名=ルート&パスワード=ルート& csrf_token_name = 31961f17de5fa2df657ab1aba880f718
どのようにこれまで私はCSRFを削除した場合、AJAXリクエストが正常に動作し、私は応答
として200を取得し、誰もが私を助けてくださいことができます?
気にしないで、わかりました。 jsファイルでcsrf_token_nameの代わりにトークン名を使うべきです。 token01:$( "input [name = token01]")。val() – ranilchaminda
この質問を未回答のスタックから削除するには、これを質問の回答として追加してください。 – PaulSkinner