簡體   English   中英

CodeIgniter-Jquery Ajax-解析從Ajax調用收到的Json

[英]CodeIgniter - Jquery Ajax - Parse Json Received From Ajax Call

我在成功函數(ajax)中解析json時遇到問題。 我現在開始正確地學習json,但是我根本無法使它正常工作。

我有這個jQuery函數來提交數據:

$("#loginForm").on('submit', function(form)
{   
    form.preventDefault();
    var tdata= $("#loginForm").serializeArray();
    var that = $(this),
    data = tdata;

    $.ajax({
        url: that.attr('action'),
        type: 'POST',
        data: data,

        success: function(data){

            alert(data["error"]["email"]);
        },
        error: function(){
            alert(data["error"]["email"]);
        }
    });

 });

在控制器中,我有這個:

$this->load->library('form_validation');
        $this->form_validation->set_rules('email', 'Email', 'required|valid_email|trim|xss_clean');
        $this->form_validation->set_rules('password', 'Password', 'required');
 .....
$arrReturnData['error'] = $this->form_validation->error_array();
 echo json_encode($arrReturnData);

在firefox中,當我跟蹤請求時,收到的字符串是:

{"error":{"email":"The Email field is required.","password":"The Password field is required."}}

但是我不能解析它:(我不知道如何,我在這部分上花了3個多小時。一切正常,我無法解析。

我嘗試過:

data.error["email"]

要么

data[0]["email"]

但是它無法獲取電子郵件錯誤消息。 請幫忙 :)

我找到了解決方案。 我無法處理數據變量。 我所做的是修改錯誤函數(jquery ajax),如下所示:

error: function(request, status, error){
                var json=request.responseText;
                obj = JSON && JSON.parse(json) || $.parseJSON(json);
                alert(obj.error.email);

            }

所以我使用request.responseText的JSON.parse。 現在我可以成功使用obj.error.email

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM