未捕获的类型错误:无法使用'在'操作员搜索'长度'在里面
Uncaught TypeError: Cannot use 'in' operator to search for 'length' in
未捕获的TypeError:无法使用"in"运算符在中搜索"length">
这是我尝试对此JSON对象执行$.each
时收到的错误:
{"type":"Anuncio","textos":["Probando esto","$ 20150515"],"submit":"codParameters?___DDSESSIONID'u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest"}
我也尝试过用stringify做同样的事情,但我收到了同样的错误:
{'"type'":'"Anuncio'",'"textos'":['"Probando esto'",'"$ 20150515'"],'"submit'":'"codParameters?___DDSESSIONID''u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest'"}"
如果我从对象中删除参数___DDSESSIONID''u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest
,$.each就可以正常工作。
为什么会发生这种情况?
in
运算符仅适用于对象。你正在字符串上使用它。在使用$.each
之前,请确保您的值是一个对象。在这种特定情况下,您必须解析JSON:
$.each(JSON.parse(myData), ...);
也许您忘记在$.ajax 中添加参数dataType:'json'
$.ajax({
type: "POST",
dataType: "json",
url: url,
data: { get_member: id },
success: function( response )
{
//some action here
},
error: function( error )
{
alert( error );
}
});
这对我来说是
$.each(JSON.parse("[" + data + "]"))
$.each
仅适用于对象。如果你的数据是一个数组,你可以像这个一样更改它
$data = (object)$array;
唯一适用于我和$.each
的解决方案肯定会导致错误。所以我使用了for loop
,它不再抛出错误。
示例代码
$.ajax({
type: 'GET',
url: 'https://example.com/api',
data: { get_param: 'value' },
success: function (data) {
for (var i = 0; i < data.length; ++i) {
console.log(data[i].NameGerman);
}
}
});
相关文章:
- 如果i变量'It’’’’It’’没有在里面使用
- 有没有办法在里面看到一个数字'的64位浮点IEEE754表示
- 多个如果雄蕊在里面为环
- 如何创建一个新的<李>带有复选框或<a>在里面
- ng如果在里面,则在表格中重复AngularJs
- 在里面输入新文本后更新文本区域内容的值
- 使用链接截断html中的文本以显示更多/更少并将元素保留在里面
- 当鼠标在里面时激活箭头键
- 当链接被包裹在里面时,手风琴停止工作
- 根据页面内容在导航中的位置对窗口内外的页面内容进行动画处理.[在里面摆弄]
- TR链接与PHP代码在里面
- 理解“javascript : ..;“ 在里面 .
- 我在哪里放置谷歌分析代码在里面.ASPX 页
- 执行'continue'和'break'语句与for一起工作..在里面
- 未捕获的类型错误:无法使用'在'操作员搜索'长度'在里面
- ..之前存在未知的JavaScript语法..在里面
- 无法使用'在'操作员搜索'728'在里面
- 聚合物1.0在里面添加了其他聚合物元素
- 在单击上展开表行并在里面绘制D3图表
- 未捕获的类型错误:无法使用'在'操作员搜索'长度'在里面