2014-12-13 2 views
-2

У меня проблема при отправке формы с использованием jquery и codeigniter ответ, показывающий ошибку 501 метод не реализован. Я получаю эту ошибку при использовании смартфона браузер, как android.this мой код:ошибка 501 метод не реализован на jquery codeigniter

 $(document).ready(function(){ 
     var obj=$('#recoveryForm'); 
     obj.find(':submit').removeClass('disabled'); 
     obj.validate({ 
     submitHandler: function() { 
      $.ajax({ 
       cache:false, 
       dataType:'json', 
       url: "<?=base_url();?>reseller/changePassword", 
       type: "POST", 
       data: obj.serialize(), 
       beforeSend:function(){ 
        obj.find(':submit').button('loading'); 
       }, 
       success:function(data){ 
        if(data.status=='false'){ 
          $('#alert').html('<div class="alert alert-danger center">'+data.noty+'</div>'); 
          obj.find(':submit').button('reset'); 
        }else{ 
         $('#alert').html('<div class="alert alert-success center">'+data.noty+'<br><br><a href="<?=base_url();?>" class="btn btn-pink">Back to Home</a></div>'); 
         obj.fadeOut('slow',function(){obj.remove()}); 
        } 
       }, 
        error: function (xhr, ajaxOptions, thrownError) { 
        $('#alert').html('<div class="alert alert-danger center">'+xhr.status+' '+ thrownError+'</div>'); 
        obj.find(':submit').button('reset'); 
        } 
       }); 
      } 
     }); 
    }); 

И это мой PHP код

public function changePasswordR(){ 

    if($this->check_login()){ 
     $data=$this->input->post(null,true); 
     if(!empty($data['password']) || !empty($data['newpassword']) || !empty($data['konfirmpassword'])){ 
      $user=$this->reseller_data(); 
      $row=$this->madmin->read(__CLASS__,'where email= "'.$user['email'].'"'); 
      if(!empty($row)){ 
       if($this->salt($data['password'])==$row[0]->password){ 
        if($this->madmin->update(__CLASS__,'email',$row[0]->email,array('password'=>$this->salt($data['newpassword'])))){ 
         //noty 
         $this->madmin->create('notification',array('id'=>null,'time'=>date('Y-m-d H:i:s'),'msg'=>$row[0]->nama.' mengubah passwordnya')); 
         die(json_encode(array('status'=>'true','noty'=>'<script type="text/javascript">alert("Selamat '.$row[0]->nama.', password anda berhasil diubah. Silahkan melakukan login ulang menggunakan password baru anda.");window.location.href = "'.base_url().'logout";</script>'))); 
        }else{ 
         die(json_encode(array('status'=>'false','noty'=>'Gagal mengubah password, silahkan coba beberapa saat lagi.'))); 
        } 
       }else{ 
        die(json_encode(array('status'=>'false','noty'=>'Password lama salah.'))); 
       } 
      }else{ 
       die(json_encode(array('status'=>'false','noty'=>'Akun tidak ditemukan.'))); 
      } 
     }else{ 
      die(json_encode(array('status'=>'false','noty'=>'Data tidak lengkap.'))); 
     } 
    }else{ 
     die(json_encode(array('status'=>'false','noty'=>'Login kembali untuk melanjutkan.'))); 
    } 
} 

enter code here 

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

ответ

-1

я не знаю, почему, но я добавить этот код

mysql_set_charset('utf8'); 

и это работа

+0

Вы должны добавить текст, объясняющий, что это за ответ делает и почему он обеспечивает решение конкретной проблемы. Свалки кода редко используются для других людей. – Paritosh

1

Если вы включили проверку CSRF в своем проекте, вы должны отправить имя csrf_token_name в CI. так что вы должны использовать form_open ("/ some_url", '') и form_close() в своих кодах HTML, а затем сериализовать форму и отправить серверу.

var _form = $("#some_form").serializeArray(); 

проверка этого: Codeigniter (CSRF) jQuery ajax problem

0

изменить эту линию в виду

url: "<?=base_url();?>reseller/changePassword", 

к

url: "<?php echo base_url('reseller/changePassword');?>", 

добавить ниже линии к контроллеру методу

header('Content-Type: application/json'); 

и использовать эхо вместо умереть

echo json_encode(array(....)); 
Смежные вопросы