2013-05-13 130 views
0

我正在使用jquery ajax函数来设置codeigniter会话,但无法设置并获得响应回!设置codeigniter会话使用jquery ajax

$.ajax({ 
     url: site_url+'controller/cart/'+id, 
     dataType : 'json', 
     success: function(result) { 
      alert(result); 
     } 
    }); 

而在车侧的功能,

public function cart($id) { 
    if($this->session->userdata('cart') == "") { 
     $cart = array(); 
    } else { 
     $cart = $this->session->userdata('cart'); 
    } 

    if (!in_array($id, $cart)) { 
     array_push($cart, $id); 
     $this->session->set_userdata('cart', $cart); 
    } 

    echo json_encode($this->session->userdata('cart')); 
} 

请帮帮忙!

回答

0

在代码:

success: function(result) { 
    alert(result); 
} 

结果是对象。对于完全看它,试试这个代码:

success: function(result) { 
    console.log(result); 
} 

末看到在您的浏览器的开发控制台输出

+0

仍然没有工作! – 2013-05-13 10:33:24

+0

你是否要求工作正确吗? Ypu可能会通过开发工具(FF中的萤火虫或Chrome中的开发者控制台)检查您的ajax请求和响应 – Eugene 2013-05-13 10:35:49

+0

是的,我使用萤火虫,请求工作正常,但响应是空的,不知道我犯了什么错误! – 2013-05-13 10:37:33

0

尝试在[您的网址] json_response使用响应变量?然后在你的php中对你的数据进行http [url]?json_response =并将它回显出来以便一次性收到你的ajax请求。你应该设置你的ajax.dataType只接受json。然后,你应该能够使用PHP JSON编码数据ajax.success内,像这样:

success: function (data){ 
if(window.console){ 
    console.log(data); 
} 
} 

或在您的ajax.complete:

complete: function (response){ 
if(window.console){ 
    console.log(response.responseText); 
} 
}