Javascript 获取REST API的请求响应错误
我已经构建了一个API和使用该API的应用程序。当我通过邮递员Javascript 获取REST API的请求响应错误,javascript,rest,api,fetch,Javascript,Rest,Api,Fetch,我已经构建了一个API和使用该API的应用程序。当我通过邮递员POST方法时,它工作正常,但当我尝试通过应用程序获取它时,我得到一个错误的请求400状态响应。我做错了什么 以下是我的JavaScript代码: const myForm=document.getElementById('loginForm'); myForm.addEventListener('submit',函数(e){ e、 预防默认值(); 常量url=https://thawing-peak-69345.herokuapp
POST
方法时,它工作正常,但当我尝试通过应用程序获取它时,我得到一个错误的请求400状态响应。我做错了什么
以下是我的JavaScript代码:
const myForm=document.getElementById('loginForm');
myForm.addEventListener('submit',函数(e){
e、 预防默认值();
常量url=https://thawing-peak-69345.herokuapp.com/api/auth';
const myHeaders=新的头();
append('Accept','application/json,text/html,*/*');
append('Content-Type','application/json,charset=utf-8')
常量formData={
电子邮件:this.email.value,
密码:this.password.value
};
console.log(formData);
常量获取选项={
方法:“POST”,
模式:“无cors”,
缓存:“无缓存”,
标题:myHeaders,
正文:JSON.stringify(formData)
};
获取(url、获取选项)
.then(res=>res.json())
.then(res=>console.log(res))
.catch(err=>console.log(err))
})
请求
响应
标题请求:
标题响应:
你说过:
这是一个声明,表明您没有做任何需要获得CORS许可的事情。如果您试图做任何需要许可的事情,它将被默默地忽略
将内容类型
标题设置为HTML表单
元素的类型
属性不支持的值需要CORS的许可application/json
不是这样的值
因此,请求以text/plain
的形式发送
因为它没有被标记为JSON,所以服务器抛出一个400错误
您需要:
- 删除
模式:“无cors”,
- 确保您向其发出请求的服务将使用CORS授予您权限(或使用与请求相同来源的服务)
mode: 'no-cors',
myHeaders.append( 'Content-Type', 'application/json, charset=utf-8')