[英]Cannot Parse JSON data With jQuery.parseJSON
我正在嘗試通過使用AJAX在服務器上執行操作
jQuery(document).on('click','a.edit', function (e) {
var id=$(this).prop('id');
var params="id="+id;
$.ajax({
data:params,
method: 'post',
url:base_url+'ajax/GetCategoryDetails/',
beforeSend: function(){
//alert(1)
},
complete: function(){ },
success: function(resultSet)
{
console.log( typeof resultSet );
console.log( resultSet );
console.log(resultSet.responseJSON.SUCCESS);
var result = jQuery.parseJSON(resultSet.responseJSON )
//alert(resultSet.SUCCESS);
console.log(resultSet.responseJSON );
//alert(result);
//App.stopPageLoading();
if(resultSet.ERROR)
{
alert(2);
}
else if(resultSet.SUCCESS)
{
alert(resultSet.DATA.name);
//$('#category').html(x.name);
}
}
});
});
然后在服務器端執行操作后,我必須發送回一些響應,為此,我制作了一個名為resultset的數組,並像這樣將其發送回
public function GetCategoryDetails()
{
if($_POST)
{
$this->load->model('category');
$category=array('id'=>$this->input->post('id'));
$cat=$this->category->getCategoryDetails($category);
if($cat)
{
$resultSet['SUCCESS'] = 1;
$resultSet['DATA'] = $cat;
}
else
{
$resultSet['ERROR'] = array('1');
$resultSet['MESSAGE'] = array('Could not get Category Details. Try Later');
}
//var_dump( json_encode($resultSet));exit;
echo json_encode($resultSet);
}
}
在var dump中看起來像以下內容:
string '{"SUCCESS":1,"DATA":{"id":"31","name":"asdasdasd"}}' (length=51)
現在刪除vardump之后,當它返回到ajax時,resultSet如下所示:
alert(resultSet);
使用jQuery.parseJSON(resultSet);
它在警報中返回[object Object]
JSON未被解析,或者可能是什么問題?
試試console.log(resultSet.responseJSON.SUCCESS);
如果您收到服務器的響應,則該響應中將包含responseJSON
鍵。
因此,如果您嘗試訪問resultSet.SUCCESS
你會得到undefined
,因為SUCCESS
是不是一個關鍵resultSet
但關鍵resultSet.responseJSON
。
因此,您的數據在resultSet.responseJSON.DATA
之內。
success: function(resultSet)
{
console.log( typeof resultSet );
console.log( resultSet );
console.log(resultSet.responseJSON.SUCCESS);
var result = jQuery.parseJSON(resultSet.responseJSON )
//alert(resultSet.SUCCESS);
console.log(resultSet.responseJSON );
//alert(result);
//App.stopPageLoading();
if(resultSet.ERROR)
{
alert(2);
}
else if(resultSet.SUCCESS)
{
alert(resultSet.DATA.name);
//$('#category').html(x.name);
}
}
我犯的錯誤是,我分析的對象$resultSet
並將其存儲在$result
,並仍然使用resultSet.ERROR
, resultSet.DATA.name
和resultSet.SUCCESS
,而是應該像訪問result.ERROR
, result.DATA.name
,結果result.SUCCESS
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.