请求错误: TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body. at HTMLButtonElement.<anonymous> (file:///C:/Users/86131/Desktop/interface/static/node_ceshi/ceshi_1.js:11:3) {stack: 'TypeError: Failed to execute 'fetch' on 'Wind…/interface/static/node_ceshi/ceshi_1.js:11:3)', message: 'Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.'}
时间: 2024-04-22 15:26:42 浏览: 245
这个错误是由于你在fetch请求中使用了GET方法,并且尝试在请求中添加了请求体。GET请求通常不允许有请求体,因此会引发该错误。
要解决这个问题,你可以将fetch请求的方法改为POST或其他允许带有请求体的方法。根据你的需要和后端API的要求,选择合适的请求方法。
下面是一个修改后的示例代码:
```javascript
// 获取按钮和输入框元素
const searchButton = document.getElementById('search-button');
const keywordInput = document.getElementById('keywordInput');
// 监听按钮点击事件
searchButton.addEventListener('click', () => {
// 获取关键字
const keyword = keywordInput.value;
// 发送fetch请求
fetch('/api/data', {
method: 'POST', // 注意这里改为POST方法
body: JSON.stringify({ keyword: keyword }),
headers: {
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => {
// 在这里更新数据
console.log(data);
})
.catch(error => {
console.error('请求错误:', error);
});
});
```
在上述代码中,我将fetch请求的方法改为POST,并在请求中添加了请求体。请根据你的需求和后端API的要求进行相应的修改。
阅读全文