SyntaxError:JSON输入意外结束 (匿名)@ im.html:201与机器人进行了几次对话后,我被抛出此错误。下面是我用来捕获短信的输入框。
<form action="javascript:void(0);" class="bg-light" autocomplete="off">
<div class="input-group">
<input type="text" placeholder="Type a message" aria-describedby="button-addon2" class="form-control rounded-0 border-0 py-4" id="message">
<div class="input-group-append">
<button id="button-addon2" type="submit" class="btn btn-link" onclick="userMessage()"> <i class="fa fa-paper-plane"></i></button>
</div>
</div>
</form>
[当用户按下Enter键时,我正在UI中显示键入的消息,并向服务器发送POST请求以获取响应。
// User message layout
function userMessage() {
var spinner = document.getElementById('textSpinner');
var h5 = document.getElementById("h5");
var inputBox = document.getElementById("message");
var p = document.createElement("p");
var inputValue = inputBox.value;
var text = document.createTextNode(inputValue);
p.appendChild(text);
if (inputValue === '' || !h5.innerText) {
alert("Please sart the session first!");
} else {
var div = document.createElement("div");
div.className = "media";
/.../
var chatArea = document.getElementById('chat-area')
chatArea.scrollIntoView({ behavior: 'smooth', block: 'end' })
spinner.style.display = "none";
interact(h5.innerText, inputValue);
}
inputBox.value = "";
}
下面是POST请求
// POST user message
function interact(userId, message) {
var spinner = document.getElementById('textSpinner');
spinner.style.display = "block";
const payload = {
userId: userId,
utterance: message
};
fetch('Sessions/Interact', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => botMessage(data.Message))
.then(() => spinner.style.display = "none")
.catch(error => console.error(error));
}
[当我从服务器获得响应时,我正在调用另一个名为botMessage()
的函数,该函数类似于将显示机器人消息的userMessage()
。有人可以指导我为什么引发此错误,是否有解决此问题的解决方案?预先感谢。
这里是来自服务器的响应正文。
{
"Message": "Hello, It's me. Let's start chatting shall we?",
"Data": null
}
我有一个简单的chatbox UI,已集成到使用.netcore开发的chatbot中。 SyntaxError:JSON输入意外结束(匿名)@ im.html:201 ...