Данные JQuery AJAX не заменяет переменные значения по запросу - PullRequest
0 голосов
/ 27 апреля 2019

Я использую jquery 3.3.1 и codeigniter. У меня есть этот код ниже, который представляет собой ajax-запрос с токенами csrf и некоторыми данными.

var csrfHash = "<?php echo $this->security->get_csrf_hash(); ?>";
var csrfName = "<?php echo $this->security->get_csrf_token_name(); ?>";
function save(sid){
    var newname = $('#s'+sid).val();    
    $.ajax({
        url:'<?php echo base_url();?>schoolmaster/School/update',
        data:{csrfName:csrfHash,'id':sid,'schoolname':newname},
        type:'POST',
        success:function(response){
            var response_json = JSON.parse(response);
            if(response_json['message'] == 'TRUE'){
                alert("Success");                    
            }else{
                alert("Failed to update.");                    
            }
            csrfName = response_json['csrfName'];
            csrfHash = response_json['csrfHash'];              
        }
    });       
}

проверка изображения для данных формы

Если вы видите изображение, «id» и «schoolname» были пропущены правильно, но csrfName содержит фактическое имя переменной csrf. Но оно не изменилось на «csrf_test_name».Это должно быть что-то вроде

data:{'csrf_test_name':csrfHash,'id':sid,'schoolname':newname}

, это прекрасно работает, но я хочу, чтобы оно было динамичным.

1 Ответ

0 голосов
/ 27 апреля 2019

Не делайте этого напрямую в $.ajax

Вы бы лучше построили Json Object так:

var csrfHash = "<?php echo $this->security->get_csrf_hash(); ?>";
var csrfName = "<?php echo $this->security->get_csrf_token_name(); ?>";

var MyJson:{id:sid, schoolname:newname}; // <- not using [''] for keys
MyJson[csrfName]:csrfHash;

А потом

 $.ajax({
    url:'<?php echo base_url();?>schoolmaster/School/update',
    data: MyJson,
    type:'POST',
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...