2011-08-03 4 views
1

Javascriptのセクション:CodeIgniterのアヤックスCSRFのjQuery Cookieの方法予期せずに動作

var token = $.cookie("csrf_cookie_name"); 
var tx = document.getElementById("tx"+working_row).value; 
var mods =document.getElementById("mods"+working_row).value; 
var pos = document.getElementById("pos"+working_row).value; 
var startdate = document.getElementById("startdate"+working_row).value; 
var enddate = document.getElementById("enddate"+working_row).value; 
var fordx = document.getElementById("4dx"+working_row).value; 
var qty = document.getElementById("qty"+working_row).value; 
var price = document.getElementById("price"+working_row).value; 
obj = new Object(); 
obj={'csrf_token_name':token,'tx':tx,'mods':mods,'pos':pos,'startdate':startdate,'enddate':enddate,'fordx':fordx,'qty':qty,'price':price}; 
alert(obj.csrf_token_name); 
$.post("index.php/auth/fee_schedule",obj, function(data){ 
    alert(data); 
}); 

私がいる問題は、トークン変数は、ポストには含まれていないことです。なぜ私は分からない。アラートは[Object Object]ですので、nullです。ページのヘッダーは次のとおりです。

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Medata Preauthorzation System</title> 
    <link rel="stylesheet" href="<?php echo base_url();?>css/screen.css" type="text/css" media="screen"> 
    <script type="text/javascript" src="<?php echo base_url();?>js/jquery.js"></script> 
    <script type="text/javascript" src="<?php echo base_url();?>js/jquery.sexy-combo.min.js"></script> 
    <link rel="stylesheet" href="<?php echo base_url();?>css/jquery-ui-1.8.13.custom.css" type="text/css" media="screen"> 
    <link rel="icon" type="image" href="/medata/favicon.ico"> 
    <script type="text/javascript" src="<?php echo base_url();?>js/jquery.impromptu.js"></script> 
    <script type="text/javascript" src="<?php echo base_url();?>js/jquery-ui-1.8.13.custom.min.js"></script> 
    <script type="text/javascript" src="<?php echo base_url();?>js/cookie.js"></script> 
</head> 

したがって、ライブラリとCookieの機能が含まれています。私はポストを行うには、同じページ上のクッキー機能を10他の回を使用して、それが正常に動作しますが、私は他の変数とオブジェクトにそれらのいずれかを入れていないので、それだけでインラインアラ

$.post("index.php/auth/tx_history/"+tx_code, { csrf_token_name: $.cookie("csrf_cookie_name") }, function(data){ 
    //alert(data); 
     $("#price"+rowid).val(data); 
}); 

私は思いますいくつかの示唆を愛し、私はノンストップ問題のためにこのコードのほとんどの午後に頭を打っています。

答えて

0

は多分:

var token = $.cookie("<?php echo $this->config->item("csrf_cookie_name"); ?>"); 
+0

はそれがクッキーの項目の正確な名前ですが、コンフィグをチェック。警告することでダブルチェック...いいえ試して=) – DiscontentDisciple

+0

クッキーは存在しますか? –

+0

いいえ、それは問題です。私は、クッキーの名前が間違っている原因となる文書化された問題のどこかを読んだことがあります。これは、URIからデータを抽出して実際にデータをポストしていないため、他のすべての投稿が機能したことを意味します。 私は設定ファイルを更新して、不具合から名前をつけて、一貫性を持たせ、トークンの名前をcsrf_tokenに更新しました。そして、今から値を取得しています。 $クッキーは機能しますが、ポストはまだ動作していません。 – DiscontentDisciple

関連する問題