TypeError: invalid 'in' operand obj

尝试在程序去访问远程的Web API,它在运行时,出现异常:

TypeError: invalid ‘in‘ operand obj

由于从服务器返回的数据是json。
当我们需要得到这些数据时,还得需要Parse。
因此我们把代码稍微修改一下:

$(function () {
            $.ajax({
                type: "GET",
                url: "http://localhost:9001/api/size",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    data = $.parseJSON(data);
                    $.each(data, function (index, item) {
                        //...
                    });                  

                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(errorThrown);
                }
            });
        });

Source Code

TypeError: invalid 'in' operand obj

时间: 2024-11-15 20:15:58

TypeError: invalid 'in' operand obj的相关文章

深入javascript: in 和 delete 运算符

一.in操作符1.定义 如果指定的属性存在于指定的对象中,则in运算符会返回true.(如果一个属性是从原型链上继承来的,in运算符也会返回true) 2.数组操作 //数组 var arr = ["ben","Ben","benjamin","Benjamin"]; console.log(arr); console.log(0 in arr); //true console.log(2 in arr); //true co

ES6

我相信,在ECMAScript.next到来的时候,我们现在每天都在写的JavaScript代码将会发生巨大的变化.接下来的一年将会是令JavaScript开发者们兴奋的一年,越来越多的特性提案将被最终敲定,新一版本的JavaScript将会慢慢得到普及. 本文中,我将会讲几个我个人很期待的,希望能在2013年或者更晚一点使用上的新特性. ES.next目前的实现情况 可以通过查看Juriy Zaytsev总结的ECMAScript 6兼容性表格,和Mozilla的ES6实现情况页面以及通过使用

es6笔记5^_^set、map、iterator

一.set 1.基本用法 数据结构Set类似于数组,但是成员的值都是唯一的,没有重复的值. let s = new Set(); [2,3,5,4,5,2,2].map(x => s.add(x)) for (let i of s) {console.log(i)}// 2 3 5 4 //Set函数可以接受一个数组作为参数,用来初始化. var items = new Set([1,2,3,4,5,5,5,5]); console.log(items); // set object conso

MVVM双向绑定实现之Object.defineProperty

随着web应用的发展,直接操作dom的应用已渐行渐远,取而代之的是时下越来越流行的MVVM框架,dom操作几乎绝迹,这里面自然是框架底层封装的结果.MVVM框架的双向数据绑定使开发效率大大提高:然后在实现这些双向数据绑定时,使用ES7原生的Object.observe方法则是完美解决方案,但是遗憾的是该方法目前还是ES7的草案阶段,各浏览器还不支持,目前chrome 36+支持该方法. 既然Object.observe不被支持,但是其替代方案是ECMAScript 262v5带来的新东西Obje

之前学习的es6 感觉记忆有些模糊 复习一下

1. let.const 和 block 作用域 let 允许创建块级作用域,ES6 推荐在函数中使用 let 定义变量,而非 var: var a = 2; { let a = 3; console.log(a); // 3 } console.log(a); // 2 同样在块级作用域有效的另一个变量声明方式是 const,它可以声明一个常量.ES6 中,const 声明的常量类似于指针,它指向某个引用,也就是说这个「常量」并非一成不变的,如: { const ARR = [5,6]; AR

向ES6看齐,用更好的JavaScript(三)

本文是ES6系列的第三篇,主要介绍ES6新增的数据类型.数据结构,先上传送门: 1 变量部分 2 现有对象拓展 3 新增数据类型/数据结构 4 新的异步编程模式 5 类和模块 1 第七种数据类型Symbol ES6引入了一种新的原始数据类型Symbol,表示独一无二的值.它是JavaScript语言的第七种数据类型,前六种是:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object). let s = Symbol(); conso

ECMAScript 6 扫盲

原文出处--http://web.jobbole.com/86952/ ECMAScript 6 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中绝大多数的特性. 本文译自 Github 上的一篇文章,目的是对还不太熟悉 ES6 语法的同学做一个简单的扫盲. 1. let.const 和 block 作用域 let 允许创建块级作用域,ES6 推荐在函数中使用 let 定

es6新增 set

Set 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2, 3, 5, 4, 5, 2, 2].map(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 上面代码通过add方法向Set结构加入成员,结果表明Set结构不会添加重复的值. Set函数可以接受一个数组(或类似数组的对象

js中的内部属性与delete操作符

本文正式地址:http://www.xiabingbao.com/javascript/2015/08/03/javascript-delete-configurable 在讲解Configurable之前,我们首先来看一道面试题: a = 1; console.log( window.a ); // 1 console.log( delete window.a ); // false console.log( window.a ); // 1 var b = 2; console.log( w