Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 飞行前请求因window.fetch api而失败_Javascript_Ajax_Fetch_Preflight - Fatal编程技术网

Javascript 飞行前请求因window.fetch api而失败

Javascript 飞行前请求因window.fetch api而失败,javascript,ajax,fetch,preflight,Javascript,Ajax,Fetch,Preflight,让我先说一句,它在Chrome的附加API客户端POSTMAN中工作。但它在我的实际应用程序中不起作用,我想知道在获取请求中是否有我忘记包含的内容 (id, vzId)=>{ var json = {id: id, vzId: vzId, }; var request = { method: 'POST', body: json, headers

让我先说一句,它在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);
            })
        }
我有以下要求

(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)中使用了完全相同的url和数据,它工作正常,但由于某种原因,当我使用FETCH api时它不工作。任何帮助都将不胜感激

如果有人无意中发现了这一点,并且它可以帮助未来的人们,我们找到了答案。我发布的代码没有问题。它对Postman而不是客户端起作用的原因是Postman不执行飞行前请求。客户端(几乎所有网站都会这样做)以选项方法的形式发送飞行前请求。后端Spring服务器不允许选项方法。后端开发人员必须允许OPTIONS方法访问服务器中的特定路由,而不仅仅是POST

因此,如果您正在测试Postman,但无法复制该行为,请记住Postman不会发送飞行前请求