在reactjs中提交formData后出现这个错误是什么

问题描述 投票:0回答:3

当我发送带有文本数据的图像时,而不是显示此错误:

    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 插入数据。

reactjs fetch
3个回答
1
投票

从 api 返回的数据不是格式良好的 json,因此当您尝试使用以下方法将其解析为 json 对象时:

result = await result.json();

...它会抛出错误。

直接记录 api 的返回结果,并使用在线 json 验证器,例如:https://jsonlint.com/ 更详细地查看错误所在。

了解 .json() 和流:https://developer.mozilla.org/en-US/docs/Web/API/Response/json


0
投票

您是否期待 php 文件的 json 响应? 如果是这样:

echo 'working!';

将js更改为:

result = await result.text;

它们应该匹配


-1
投票

删除标题或标题内容类型

 headers: {
            
            'Accept': 'application/json'
        }

没有标题,您可以提交表单数据。并且检查你的api页面可能有sql问题

© www.soinside.com 2019 - 2024. All rights reserved.