PHP不会在$ .ajax中回显

时间:2016-02-15 03:41:42

标签: javascript php ajax codeigniter

$(document).ready(function() {
  $(".comment_flag").click(function(){
    $(".comment_flag").prop("disabled", "disabled");
    $.ajax({
       url: "http://www.somesite.net/ajax/comment_flag",
       type: "POST",
       data: {'<?php echo $this->security->get_csrf_token_name(); ?>':'<?php echo $this->security->get_csrf_hash(); ?>', "x":"1"},
       success: function(){
         //Do something
         $("comment_flag").prop("disabled");

       },
       complete: function(){
         $("comment_flag").removeProp("disabled");

       },
       error: function(){

       }
     });
    });
  });

我遇到了数据线的一些问题。我花了几个小时的挫折试图弄清楚为什么我不能回应它。我也试过像这样创建php变量:

$x = json_encode($this->security->get_csrf_token_name());
$y = json_encode($this->security->get_csrf_hash());

和javascript变量如下:

var x = <?php echo json_encode($this->security->get_csrf_token_name()); ?>;
var y = <?php echo json_encode($this->security->get_csrf_hash()); ?>;

在外部javascript加载到的页面中(第一个代码框)。

我似乎无法完成任何这项工作。我正在使用codeIgnighter传递crsf数据。我似乎可以发送任何数据的唯一方法是,如果我在引号之间写入它。我还将我的javascript文件重命名为name.js.php无效。

我试图阻止的错误是403禁止(crsf令牌)。任何方向都会很棒。谢谢。

编辑:我已经尝试只用一个字符串进行回显,并且工作正常。看来我遇到的问题是:

$this->security->get_csrf_token_name();
$this->security->get_csrf_hash();

无效。

接收:未捕获的SyntaxError:意外的令牌ILLEGAL //“致命错误:当不在对象上下文中时使用$ this”,当我在数据括号之间使用php运行它时。

0 个答案:

没有答案