Fetch API主体无法正常工作

时间:2018-01-24 16:04:28

标签: javascript

这是一个非常简单的获取api但由于某种原因我不知道为什么身体不起作用。这是代码。

<label id="msg"></label>
<label id="msg2"></label>
<script type="text/javascript">

    const myRequest = new Request('some url', {
                        method: 'POST',
                        headers: {'Content-Type': 'application/json'},
                        body: JSON.stringify({"email" : "email",
                                              "password" : "password"}),
                        mode: 'no-cors'});
    const myMethod = myRequest.method; // POST
    const bodyUsed = myRequest.bodyUsed; // true

    fetch(myRequest)
      .then(response => {
        if (response.status === 200) {
          return response.json();
        } else {
          //throw new Error('Something went wrong on api server!');
        }
      })
      .then(response => {
        document.getElementById("msg").innerHTML = response;
        document.getElementById("msg2").innerHTML = bodyUsed+" "+myMethod;
      }).catch(error => {
        document.getElementById("msg").innerHTML = error;
      });
</script>  

我做错了什么吗?我已经对字体进行了字符串化,更改了标题,但是当它运行时,它在msg2标签中显示为false(这只是请求的正文部分,只是为了确定)。这意味着身体实际上是NaN。问题在哪里,解决方案是什么?

1 个答案:

答案 0 :(得分:2)

mode: 'no-cors'

这意味着我不想做任何需要服务器使用CORS授予权限的事情;不要抛出与CORS相关的错误

读取跨源的响应需要服务器使用CORS授予权限。

你说你不打算这样做,所以fetch不会试图让你的身体可用。

(您也无法执行任何需要预检请求的操作,例如将Content-Type请求标头设置为JSON。)

请勿将模式设为no-cors