预检请求失败,并显示 window.fetch api
Preflight Request failing with the window.fetch api
让我先说一下它在Chrome的附加API客户端POSTMAN中工作。但它在我的实际应用程序中不起作用,我想知道是否有我忘记包含在获取请求中的内容。
我有以下要求。
(id, vzId)=>{
var json = {id: id, vzId: vzId, };
var request = {
method: 'POST',
body: json,
headers: new Headers({
'Accept': 'application/json',
'Content-Type': 'application/json'
})
}
fetch('http://localhost:8080/notification/markRead',request).then(function(response){
return response.json();
}).then(function(json){
console.log(json);
})
}
当请求被触发时,它会向我返回此错误。
OPTIONS http://localhost:8080/notification/markRead
Fetch API cannot load http://localhost:8080/notification/markRead.
Response for preflight has invalid HTTP status code 403
我在 chrome rest 客户端 (POSTMAN) 中使用了完全相同的网址和数据,并且它正在运行,但由于某种原因,当我使用 FETCH API 时它不起作用。任何帮助将不胜感激。
万一有人偶然发现这一点,并且它可以在未来帮助人们,我们找到了答案。我发布的代码没有错。它之所以在邮递员而不是客户端上工作,是因为邮递员不做预检请求。客户端(几乎所有网站都会这样做)以 OPTIONS 方法的形式发送预检请求。后端 Spring 服务器不允许使用选项方法。后端开发人员必须允许 OPTIONS 方法访问服务器中的特定路由,而不仅仅是 POST。
因此,如果您正在 Postman 上进行测试但无法复制该行为,请记住 Postman 不会发送预检请求。
相关文章:
- 如何显示window.onbeforeunload警报的引导模式
- 如何使用window.showModalDialog()显示HTML内容
- 如何在提示下获取和使用从window.onbeforeunload事件的返回语句显示的值
- Ext.Window在显示时窃取表单元素;t隐藏时恢复
- window.open无法在显示pdf的jsp页面中工作
- JQuery Mobile,通过window.location重定向可阻止页面显示事件
- window.location.hash始终显示为空
- window.onbeforeunload不显示报警框
- 如何在弹出窗口中显示后退和前进按钮,通过 window.open 或 self.open 打开 Chrome
- 预检请求失败,并显示 window.fetch api
- 使用jQuery突出显示效果时 window.name 的奇怪问题
- Ext.Window 在 extjs 3.4 中显示当前打开窗口后面的方法打开窗口
- 在 window.print 中添加自定义页眉页脚,该页脚显示在每个页面上
- javascript:window.print() 不显示用于打印的条形码
- $(document).ready 或 window.onload 用于隐藏/显示视频
- 为什么 window.location.href 在 IE 中不显示哈希
- javascript在使用javascript:window.location.reload()时不会显示警报
- 如何通过window.showModalDialog()显示HTML内容
- Javascript-window.open无法正确显示数据
- JavaScript For循环显示window.location的最后一次迭代