Не удалось обработать Ajax-запрос в коде ignitor1.7.3 - PullRequest
0 голосов
/ 16 декабря 2010

После моего кода, который работает нормально в коде воспламенителя 1.7.1, теперь не может вызвать метод контроллера Ошибка стороны ');

Я обнаружил, что ни один из запросов Jquery Ajax не работает ..

не в состоянии понять, почему он не будет вызывать метод контроллера,

Пожалуйста, помогите

function checkAvailability(){   $.blockUI({message: null}); 
    var newMessage = 'E1';
    $('#searchLoading').show();     alert('I am here');     $.ajax({
                type: "post",
                url: "user/checkAvailability?requestSource=USER_AVAILABILITY",
                cache: false,               
                data: "userName=" + $("#userName").val(),
                success: function(json){
                    alert("Printing Json");
                    try{
                        $.unblockUI();                  
                        var obj = JSON.parse(json);                                         

                        if(obj[0].STATUS=='true'){                                                
                            newMessage = "E15";
                            $('#checkUser').hide();                          
                        }else{
                            newMessage = "E16";                     
                            $("#checkUser").hide();                    
                        }                   
                        showMessage(newMessage);
                        $('#searchLoading').hide();
                    }catch(e) {     
                            alert('In side Exception');
                            showMessage("E1");  
                            $.unblockUI();  
                            $('#searchLoading').hide();
                    }       
                },
                error: function(){

                    alert('In side Error');
                    $('#searchLoading').hide();
                    $.unblockUI();                  
                    $("#checkUser").hide();                     
                    showMessage(newMessage);        
                    $( "form" )[0].reset();

                }        });
          }

Метод CI в контроллере. Пользователь

/**
        This method is used to check User Name availabiliy.
    */

    public function checkAvailability(){    

        $userName = trim($this->input->post('userName'));

        $query = $this->UserModel->getUser($userName);  

        $status =array("STATUS"=>"true");   

        if($query){
            $status = array("STATUS"=>"false");
        }

        echo json_encode (array($status)) ; 
    }

Ответы [ 4 ]

1 голос
/ 16 декабря 2010

Самой большой причиной проблем для людей, переходящих на 1.7.3, является то, что они переопределяют свои файлы конфигурации. Убедитесь, что ВСЕ конфигурационные файлы скопированы до того, как они были переданы, или возвращены к последующему.

Sod все изменилось в 1.7.3, кроме исправления безопасности в одной строке кода, которое не нарушило бы AJAX.

1 голос
/ 16 декабря 2010

Ошибка обычно появляется, когда запрос AJAX не достигает страницы.

Измените URL-адрес в вашем запросе AJAX на абсолютный путь, например

url: "/user/checkAvailability?requestSource=USER_AVAILABILITY"

или

url: "http://site.com/user/checkAvailability?requestSource=USER_AVAILABILITY"

0 голосов
/ 30 декабря 2010

Убедитесь, что в вашем config.php включены строки запроса.

должно находиться в строке 151 файла system / application / config / config.php

change

$config['enable_query_strings'] = FALSE;

to

$config['enable_query_strings'] = TRUE;

Я предполагаю, что у вас есть причина? requestSource = USER_AVAILABILITY, помеченный в URL.

Также да, используйте полный URL (включая http://) вURL AJAX.

0 голосов
/ 16 декабря 2010

Возможно также попробуйте явно установить для свойства dataType значение json при выполнении запроса AJAX в JQuery.Возможно, JQuery пытается проанализировать JSON как что-то еще.

dataType:'json'

Более подробная информация здесь: http://api.jquery.com/jQuery.ajax/

И я бы повторил совет Фила использовать Firebug илиКонсоль разработчика в Chrome, чтобы узнать, что происходит с вашим AJAX-запросом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...