object响应时出现对象错误javascript

object Object error javascript on response

本文关键字:对象 错误 javascript 响应 object      更新时间:2023-09-26

我正在开发一个网页,当我输入一个单词并按下按钮时,它将显示该单词的含义。我得到了一个[object Object]错误,而不是单词的含义。

示例:我输入的单词:code

API结果:

{"Verb": ["attach a code to", "convert ordinary language into code"], "Noun": ["a set of rules or principles or laws (especially written ones", "a coding system used for transmitting messages requiring brevity or secrecy", "(computer science"]}

JS:

var links={
    'meaning': 'link here',
}
var getMeaning = function(word){
    totalLink = links.meaning + word;
    var r = new XMLHttpRequest();
    r.open("GET",totalLink, false);
    r.send();
    var data;
    if (r.status===200){
        var resp= JSON.parse(r.responseText);
        data=resp;
    }
    else{
        data='Error while running AJAX';
    }
    return data;
}
var PDictionary = function(){
    this.meaning = getMeaning;
}

HTML:

<input id='a' type='text'><br>
<button id='b'>Do it</button>
<p class='out'></p>
<script  type="text/javascript">
    var dictionary = new PDictionary();
    function done(){
        get();
    }
    function get(){
        var word=document.getElementById('a').value;
        meaning = dictionary.meaning(word);
        document.querySelector('.out').innerHTML = meaning;
    }
    var button = document.querySelector('#b');
    button.addEventListener('click',function(){
        get();
    });
</script>

在我的控制台RESPONSE选项卡上,我得到了这个词的含义,但在网页上,我收到了错误

当它返回[object Object]时,您实际上并没有收到错误。这只是对象的字符串表示。您需要做一些事情来从对象本身提取实际的属性名称和值。您可以尝试像下面的例子一样的for循环。

var x, m = '';
for (x in meaning) {
    m += x + "<br />" + meaning[x].join("<br />") + "<br /><br />";
}

这里有一个JSFiddle,让您了解如何将其实现到自己的代码中。https://jsfiddle.net/up2jrzp6/