Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用fetch更改JSON值_Javascript_Json_Fetch - Fatal编程技术网

Javascript 使用fetch更改JSON值

Javascript 使用fetch更改JSON值,javascript,json,fetch,Javascript,Json,Fetch,嘿,伙计们,我正在编写一个小的电子邮件应用程序,我正在尝试为每封电子邮件创建一个存档按钮。我确信函数正在被调用,但由于某些原因,它没有变为true 奇怪的是,如果我用“read:true”替换“archive:true”,它会将“read”改为true。但是,由于某些原因,它不会更改存档属性 我确信“存档”是JSON API中的一个有效属性 有什么原因会这样吗?以下是相关代码: function archive_email(id) { fetch('/emails/' + id

嘿,伙计们,我正在编写一个小的电子邮件应用程序,我正在尝试为每封电子邮件创建一个存档按钮。我确信函数正在被调用,但由于某些原因,它没有变为true

奇怪的是,如果我用“read:true”替换“archive:true”,它会将“read”改为true。但是,由于某些原因,它不会更改存档属性

我确信“存档”是JSON API中的一个有效属性

有什么原因会这样吗?以下是相关代码:

function archive_email(id) {
    
    fetch('/emails/' + id, {
    method: 'PUT',
    body: JSON.stringify({
    archived: true
      })
    })
    load_mailbox("inbox");
    
     
}

我认为这是一个承诺问题,您是否尝试了以下代码

function archive_email(id) {
    fetch('/emails/' + id, {
        method: 'PUT',
        body: JSON.stringify({
            archived: true
        })
    }).then(() => {
        load_mailbox("inbox");
    })
}

我确信“存档”是JSON API中的有效属性
-只有您可以看到处理请求的服务器代码。。。那么,我们如何帮助调试您的服务器代码呢?因为“fetch api”返回“promise”,所以您需要使用“then”函数等待服务器的响应,该响应将数据属性编辑为archived:true。这意味着,如果不使用“then函数”,则不知道服务器是否编辑属性。您可以查看此url,了解如何使用fetch api。