这是一个非常简单的获取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。问题在哪里,解决方案是什么?
答案 0 :(得分:2)
mode: 'no-cors'
这意味着我不想做任何需要服务器使用CORS授予权限的事情;不要抛出与CORS相关的错误。
读取跨源的响应需要服务器使用CORS授予权限。
你说你不打算这样做,所以fetch
不会试图让你的身体可用。
(您也无法执行任何需要预检请求的操作,例如将Content-Type
请求标头设置为JSON。)
请勿将模式设为no-cors
。