当前位置: 首页 > 知识库问答 >
问题:

在fetch api中使用FormData()不起作用

宋高寒
2023-03-14
    var formData = new FormData();
    formData.append("nickname", "johxns");
    formData.append("password", "john_password");
    formData.append("email", "john@server.com");

    // If I do it this way, and assign this to body inside fetch, it works perfectly
    // const requestBody = '{"nickname": "johxns","password":"john_password","email":"john@server.com"}';

    fetch("http://localhost:5000/create_user", {
        // if instead of formData, I assign requestBody to body, it works!
        body: formData,
        headers: {
            "Content-Type": "application/json"
        },
        method: "POST"
    }).then(function(response) {
        return response.text();
    }).then(function(data){
        console.log('data', data);
    }).catch(function(err){
        console.err(err);
    });

我已经尝试过使用URLSearchParams,但仍然无法使其工作。

谢了。

共有1个答案

陶征
2023-03-14

如果不发送JSON,就不应该将content-type标头设置为application/json。根据这个答案,您不需要设置content-type标头。

正文数据类型必须与“Content-Type”标头匹配

使用Fetch

 类似资料:
  • 问题内容: 此功能似乎无法正常工作。当我调用该函数时,我正在使用: 当我从中删除时,它至少会运行,但不会上传照片。我该如何解决这个问题? 问题答案: IE10中的XHR不支持FormData。您可以安装Windows 8客户预览版进行尝试。

  • 问题内容: 这有效: 但是,这不是: 在第二个示例中,数组未添加到自身。 问题答案: 是的,不是 您所做的可能也是有效的代码,但是现在您正在做 它适用于数字类型(我假设您有)。没有数组索引的简化示例: 样品: 输出: -5 -5 5 5 为了清晰起见,从评论中复制: 您基本上是在说。在这种情况下,仅需指示它是一个正整数即可。这是有效的代码,但这不是您想要的。

  • 我有一些 在量角器中,我们搜索并找到元素,检查文本是否符合我们的期望,然后对该元素调用。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。 IE 11是否支持点击

  • 我试图从单个表单中提取图像和文本数据。我尝试使用formdata.get(图像)来获取用户选择的图像,但它不起作用,因为我在服务器上收到了一个未定义的值。我想知道使用formdata或任何其他方法获取用户在表单中选择的图像的适当方法,谢谢。 形式 FetchAPI 我排除了FetchAPI中与问题无关的部分。

  • 问题内容: 我注意到less.js在firefox中工作,但在Chrome中不工作,或者是因为我出错了吗? 即使我尝试在Chrome中仍然无法使用,我在某个地方犯了错误吗? 问题答案: 通过您提供的链接: 如果您使用的是Chrome,Less.js浏览器脚本当前将无法使用,并且由于已知的Chrome问题,网页的路径以“file:///”开头。