javascript - 获取请求不返回请求的数据
问题描述
我正在尝试使用 fetch() 请求和适当的标头获取 XML 数据。请求成功,但响应为空。奇怪的是,调试器中的浏览器网络选项卡给了我一个 200 OK 并具有请求的响应有效负载,但即使它存在,我似乎也无法获得这些数据。关于为什么的任何线索?
data = {
get:(url)=>{
return new Promise(resolve => {
let auth = new Headers({
"username":key.user,
"password":key.password,
"Accept":"application/xml"
})
fetch(url,{
method:"get",
mode:"no-cors",
headers: auth,
credentials:"include"
})
.then(response => console.log(response))
//empty response
})
}
}
解决方案
您正在提出跨域请求,但您说mode:"no-cors",
.
mode:"no-cors",
意思是“如果我需要许可来做一些跨域的事情,那么不要请求它,也不要抛出错误”。
no-cors — 防止方法是 HEAD、GET 或 POST 以外的任何东西,并且标头不能是简单标头以外的任何东西。如果任何 ServiceWorkers 拦截了这些请求,它们可能不会添加或覆盖除简单标头之外的任何标头。此外,JavaScript 可能不会访问结果响应的任何属性。这可确保 ServiceWorker 不会影响 Web 的语义,并防止因跨域泄漏数据而引起的安全和隐私问题。
由于您需要从跨域请求中读取数据的权限,因此它会默默地失败(因为您明确告诉它这样做)。
使用mode: "cors"
.
推荐阅读
- sql-server - 根据恢复 Filelistonly 结果创建临时表
- tableau-api - Tableau Union Joins - 您可以取消合并自动合并的字段吗?
- c# - 当字段值为是/否时隐藏表单上的字段
- visual-studio-code - 如何增加光标对面的选择?
- windows - 如何连接 Windows 打印驱动程序管道过滤器 [C++/C] [WDK]
- amazon-web-services - Setting up local https network to mock amazonaws.com in docker
- javascript - Why does my if statement work with an else if, but not an OR operator
- javascript - pentaho cde table 组件选择不同的数据源
- batch-file - 如何回显变量,“^&”在哪里?(批处理文件)
- amazon-web-services - 无法从服务器获得任何响应