当我发送带有文本数据的图像时,而不是显示此错误:
VM83:1 Uncaught (in promise) SyntaxError: Unexpected token '<', "<br />
<b>"... is not valid JSON
这是我的代码:
async function handleSubmit(e) {
e.preventDefault();
// console.log(pname,pimg,pdesc)
let formdata = new FormData()
formdata.append('pname', pname)
formdata.append('pimg', pimg)
formdata.append('pdesc', pdesc)
console.log(formdata)
const result = await fetch("http://localhost/ecomapi/addProduct.php", {
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
},
body:formdata
})
result = await result.json();
console.log(result)
}
我正在尝试使用 api 插入数据。
从 api 返回的数据不是格式良好的 json,因此当您尝试使用以下方法将其解析为 json 对象时:
result = await result.json();
...它会抛出错误。
直接记录 api 的返回结果,并使用在线 json 验证器,例如:https://jsonlint.com/ 更详细地查看错误所在。
了解 .json() 和流:https://developer.mozilla.org/en-US/docs/Web/API/Response/json
您是否期待 php 文件的 json 响应? 如果是这样:
echo 'working!';
将js更改为:
result = await result.text;
它们应该匹配
删除标题或标题内容类型
headers: {
'Accept': 'application/json'
}
没有标题,您可以提交表单数据。并且检查你的api页面可能有sql问题