Questions tagged «preflight»

10
尝试从REST API获取数据时,请求的资源上没有“ Access-Control-Allow-Origin”标头
我正在尝试从HP Alm的REST API中获取一些数据。它与一个小的curl脚本一起使用时效果很好-我得到了数据。 现在使用JavaScript进行操作,获取和ES6(或多或少)似乎是一个更大的问题。我不断收到此错误消息: 提取API无法加载。对预检请求的响应未通过访问控制检查:在所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源' http://127.0.0.1:3000 '。响应的HTTP状态代码为501。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”以在禁用CORS的情况下获取资源。 我了解这是因为我试图从本地主机中获取数据,并且解决方案应使用CORS。现在我以为我确实这样做了,但是以某种方式它要么忽略了我在标题中写的内容,要么是其他问题? 那么,是否存在实施问题?我做错了吗?我无法检查服务器日志。我真的有点卡在这里。 function performSignIn() { let headers = new Headers(); headers.append('Content-Type', 'application/json'); headers.append('Accept', 'application/json'); headers.append('Access-Control-Allow-Origin', 'http://localhost:3000'); headers.append('Access-Control-Allow-Credentials', 'true'); headers.append('GET', 'POST', 'OPTIONS'); headers.append('Authorization', 'Basic ' + base64.encode(username + ":" + password)); fetch(sign_in, { //mode: 'no-cors', credentials: 'include', method: 'POST', headers: headers }) …

10
CORS-引入飞行前要求的动机是什么?
跨域资源共享是一种允许网页向另一个域(来自Wikipedia)发出XMLHttpRequests的机制。 在过去的几天里,我一直在摆弄CORS,我认为我对所有工作原理都非常了解。 因此,我的问题不是关于CORS /预检如何工作,而是关于将预检作为新的请求类型的原因。我看不到任何原因,为什么服务器A需要发送预检(PR)到服务器B只是为了确定是否接受实际请求(RR)-B肯定有可能在没有请求的情况下接受/拒绝RR任何以前的公关。 经过大量搜索后,我在www.w3.org(7.1.5)上找到了以下信息: 为了保护资源免遭在该规范存在之前可能源自某些用户代理的跨域请求,将进行预检请求以确保资源了解此规范。 我发现这是有史以来最难理解的句子。我的解释(最好将其称为“最佳猜测”)是关于保护服务器B免受来自服务器C的请求(该服务器不了解该规范)。 有人可以解释一种情况/显示PR + RR比单独使用RR更能解决问题吗?
366 ajax  html  http  cors  preflight 

14
AngularJS对跨域资源执行OPTIONS HTTP请求
我正在尝试将AngularJS设置为与跨域资源进行通信,在该域中,提供我的模板文件的资产宿主位于不同的域上,因此angular执行的XHR请求必须是跨域的。我已将适当的CORS标头添加到服务器上,以进行HTTP请求以使其正常工作,但它似乎不起作用。问题是,当我在浏览器(chrome)中检查HTTP请求时,发送到资产文件的请求是OPTIONS请求(应该是GET请求)。 我不确定这是否是AngularJS中的错误,还是我需要配置某些东西。据我了解,XHR包装器无法发出OPTIONS HTTP请求,因此浏览器似乎在尝试确定是否“允许”在执行GET请求之前先下载资产。如果是这种情况,那么是否还需要为资产宿主设置CORS标头(Access-Control-Allow-Origin:http : //asset.host ..)?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.