我正在尝试发出 AJAX 获取请求,但不断收到错误"Uncaught SyntaxError: Unexpected token ')'"



我不知道把花括号或圆括号放在哪里才能正常工作。一开始我以为服务器坏了什么的,但后来我设法用控制台记录了数据。我一直在卸载并重新安装这个名为";括号着色器";试图解决这个问题,但我已经筋疲力尽了。

document.addEventListener('DOMContentLoaded', () => {
const title = document.createElement('h1');
title.innerText = 'Online Chatroom';
document.querySelector('body').appendChild(title);
// make AJAX call here.... 
fetch('https://curriculum-api.codesmith.io/messages')
.then(data => data.json())
.then(data => {
const main = document.querySelector('main')
for (let i = 0; i < data.length; i++) {   
writeHTML(data[i], main)
// console.log(data);
});
};
};

以下是我和我来自wyzant的导师共同编写的其余代码,如果有帮助的话。

document.querySelector('form').addEventListener('submit', sendMessage) 
function writeHTML(message, htmlNode) {
let messageContainer = document.createElement('div')
let messageText = document.createElement('p')
messageText.innerHTML = message.message
messageContainer.appendChild(messageText)
let messageTime = document.createElement('span')
messageTime.classList.add('time')
messageTime.innerText = message.created_at
messageContainer.appendChild(messageTime)
linebreak = document.createElement("br");
messageContainer.appendChild(linebreak);
// // document.innerHTML(<br>)
let createdBy = document.createElement('span')
createdBy.classList.add('message_sender')
createdBy.innerText = message.created_by
messageContainer.appendChild(createdBy)
htmlNode.appendChild(messageContainer)
}
function sendMessage(event) {
event.preventDefault()
let newMessage = document.querySelector('textarea').value
let data = {
message: newMessage,
//figure out how to add another text box and insert that data here
created_by: "Matthew",
created_at: Date.now()
}
fetch('https://curriculum-api.codesmith.io/messages', {
method: 'POST',
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
}
}).then(function(response){
return response.json()
})
.then(function(response){
const main = document.querySelector('main')
writeHTML(response[0], main)
})
.catch(function(error){
console.error(error)
})
};

这个括号放错地方了:

// console.log(data);
}); <-- this one
};

// console.log(data);
}
}); <-- should be here

您放错了两个括号,可以使用下面的代码进行检查:

document.addEventListener('DOMContentLoaded', () => {
const title = document.createElement('h1');
title.innerText = 'Online Chatroom';
document.querySelector('body').appendChild(title);
// make AJAX call here.... 
fetch('https://curriculum-api.codesmith.io/messages')
.then(data => data.json())
.then(data => {
const main = document.querySelector('main')
for (let i = 0; i < data.length; i++) {   
writeHTML(data[i], main)
// console.log(data);
}
})
})

相关内容

最新更新