首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hasOwnProperty不工作

hasOwnProperty不工作
EN

Stack Overflow用户
提问于 2016-01-03 18:35:50
回答 6查看 7.4K关注 0票数 0

我从服务器获得了一个JSON对象({error:true})。

我尝试检查对象是否包含键"error“,以及键是否存在,函数hasOwnProperty返回false

这是我的代码:

代码语言:javascript
复制
$http({
        headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;' },
        url: '/Modules/Partners/Mailing/SendMail.ashx',
        data: $.param({ contact: JSON.stringify(contact), body: partnerObject.mailTemplate.longValue, title: "" }),
        method: 'POST'
    })
    .success(function (data, status, headers, config) {
        console.log(data);
        console.log(data.hasOwnProperty('error'));

       if (data.hasOwnProperty('error')) {
           deferred.reject(contact);
       } else {
           deferred.resolve(contact);
       }
       //console.log(data)

    })
    .error(function (data, status, headers, config) {
        deferred.reject(contact);
    });

在控制台中,我可以看到通过hasOwnProperty('error')返回false,对象包含了"error“键

EN

回答 6

Stack Overflow用户

发布于 2016-01-03 18:43:15

我认为问题出在您接收的JSON对象上。事实上,关键不是error,而是'error'。尝试查看data.hasOwnProperty("'error'")是否正常工作。

票数 5
EN

Stack Overflow用户

发布于 2016-01-03 18:42:36

您是否尝试过使用if(data && data.error)而不是if (data.hasOwnProperty('error'))

这可能是因为error属性是继承的。有关hasOwnProperty和继承属性here的更多信息,请参阅

票数 1
EN

Stack Overflow用户

发布于 2016-01-03 19:00:12

success方法接收String数据,而不是JSON数据

代码语言:javascript
复制
.success(function (data, status, headers, config) {
    var result = angular.fromJson(data);

    if (result.hasOwnProperty('error')) {
        deferred.reject(contact);
    } else {
        deferred.resolve(contact);
    }
    //console.log(data)
})

JSON BTW:如果它是,在控制台中,你会看到:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34575556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档