2017-10-06 118 views
0

我在我的codeigniter項目中有一個AJAX調用。這裏是我的代碼:AJAX響應返回html內容

鑑於

$('#forgotPassword').click(function() { 
     var base_url = '<?php echo base_url()?>'; 
     $('#forgotPasswordEmailError').text(''); 
     var email = $('#forgotPasswordEmail').val(); 
     console.log(email); 
     if(email == ''){ 
      $('#forgotPasswordEmailError').text('Email is required'); 
     }else{ 
      $.ajax({ 
       url : base_url + 'Home/forgotPassword', 
       type : 'POST', 
       data : {email : email}, 
       success: function(data) {  
        console.log(data);     
        //location.reload(); 
       } 
      }); 
     } 

    }); 

和控制器:

public function forgotPassword() { 
    $email = $this->input->post('email'); 
    echo $email; 
} 

但響應只包含從我查看HTML內容。我無法確定發生了什麼事。

+0

應的響應是什麼呢?即什麼是預期的結果 – Akintunde007

+0

Plase替換數據:{email:email},帶有數據:{'email':email}, –

+0

@ankitunde我只是返回發送給fron ajax請求的電子郵件ID。但它顯示整個HTML代碼在我的查看頁面 – geeth

回答

3

改變你的jQuery代碼到

$('#forgotPassword').click(function() { 
    var base_url = '<?php echo base_url()?>'; 
    $('#forgotPasswordEmailError').text(''); 
    var email = $('#forgotPasswordEmail').val(); 
    console.log(email); 
    if(email == ''){ 
     $('#forgotPasswordEmailError').text('Email is required'); 
    }else{ 
     $.ajax({ 
      url : base_url + 'Home/forgotPassword', 
      type : 'POST', 
      data : {email : email}, 
      dataType:'json', 
      success: function(data) {  
       console.log(data);     
       //location.reload(); 
      } 
     }); 
    } 

}); 

變化控制器代碼像

public function forgotPassword() { 
    $email = $this->input->post('email'); 
    $response = ["email" => $email]; 
    echo json_encode($response); 
} 
+0

爲什麼要使用json?而不是我的upvote ..也似乎OP只是測試響應在Ajax調用 – Akintunde007

+0

,因爲使用json我們可以添加更多的數據,以容易在未來@Akintunde –

+0

其工作。謝謝。但是有必要在ajax函數中設置dataType。 – geeth

0

而不是

echo $email; 

使用:

$response = ["email" => $email]; 

return json_encode($response); 

和解析JSON,在客戶端,使用JSON.parse

+0

你可以通過ajax發送純文本,爲什麼使用json? – madalinivascu

+0

@madalinivascu可以使用純文本,但使用'JSON'可以提供更多的想法,並且在將來我們可以添加更多的數據來響應。 –

+0

我認爲沒有必要將dataType設置爲json,因爲只有一個值。但無論如何,它現在的工作 – geeth