Hay*_*ato 43 javascript php ajax jquery yii
我正在尝试通过ajax发送Get请求并输出服务器在html中返回的json数据.
但是,我收到了这个错误.
Uncaught TypeError: Cannot use 'in' operator to search for '324' in
[{"id":50,"name":"SEO"},{"id":22,"name":"LPO",}]
Run Code Online (Sandbox Code Playgroud)
这是我的代码,它通过ajax向php文件发送Get请求.当我使用$ .each方法时,它会得到我在上面显示的错误.
parentCat.on('change', function(e){
parentCatId = $(this).val();
$.get(
'index.php?r=admin/post/ajax',
{"parentCatId":parentCatId},
function(data){
$.each(data, function(key, value){
console.log(key + ":" + value)
})
}
)
})
Run Code Online (Sandbox Code Playgroud)
这是我的PHP代码,以json格式返回查询结果.
public function actionAjax(){
$parentCatId=$_GET['parentCatId'];
$catData = Category::getTargetCategoryData($parentCatId);
echo CJSON::encode($catData);
Yii::app()->end();
}
Run Code Online (Sandbox Code Playgroud)
这个php输出的json数据是这样的.
[{"id":50,"name":"SEO"},{"id":22,"name":"LPO",}]
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何解决这个问题?
请帮帮我.提前致谢 :)
Pau*_*aul 72
你有一个JSON字符串,而不是一个对象.告诉jQuery你期望一个JSON响应,它会为你解析它.使用$ .getJSON而不是$ .get,或者将dataType参数传递给$.get:
$.get(
'index.php?r=admin/post/ajax',
{"parentCatId":parentCatId},
function(data){
$.each(data, function(key, value){
console.log(key + ":" + value)
})
},
'json'
);
Run Code Online (Sandbox Code Playgroud)
我通过添加 json dataType 修复了类似的错误,如下所示:
$.ajax({
type: "POST",
url: "someUrl",
dataType: "json",
data: {
varname1 : "varvalue1",
varname2 : "varvalue2"
},
success: function (data) {
$.each(data, function (varname, varvalue){
...
});
}
});
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我必须在任何字符串周围使用双引号(注意:它们必须在 java 中转义):
@RequestMapping(value = "/someUrl", method=RequestMethod.POST)
@ResponseBody
public String getJsonData(@RequestBody String parameters) {
// parameters = varname1=varvalue1&varname2=varvalue2
String exampleData = "{\"somename1\":\"somevalue1\",\"somename2\":\"somevalue2\"}";
return exampleData;
}
Run Code Online (Sandbox Code Playgroud)
因此,如果您的数字被用作字符串(并删除最后一个逗号),您可以尝试在数字周围使用双引号:
[{"id":"50","name":"SEO"},{"id":"22","name":"LPO"}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110347 次 |
| 最近记录: |