我正在从浏览器发送如下POST请求:
fetch(serverEndpoint, {
method: 'POST',
mode: 'no-cors', // this is to prevent browser from sending 'OPTIONS' method request first
redirect: 'follow',
headers: new Headers({
'Content-Type': 'text/plain',
'X-My-Custom-Header': 'value-v',
'Authorization': 'Bearer ' + token,
}),
body: companyName
})
当请求到达我的后端时,它不包含x-my-custom-header
或authorization
头。
我的后端是用于Firebase的Google Cloud函数(基本上只是node.jsendpoint),看起来如下所示:
exports.createCompany = functions.https.onRequest((req, res) => {
let headers = ['Headers: ']
for (let header in req.headers) {
headers.push(`${header} : ${req.headers[header]}`)
}
console.log(headers)
...
}
Google Cloud for Firebase函数的控制台日志不包含任何x-my-custom-header
或authorization
头。
怎么啦?
同一来源策略限制网页可以从另一个来源向资源发送的请求种类。
在no-cors
模式中,浏览器仅限于发送“简单”请求--那些仅具有安全列表方法和安全列表头的请求。
若要发送具有授权
和X-my-custom-header
等标头的跨源请求,您必须放弃no-cors
模式,并支持飞行前请求(选项
)。
区分“简单”和“非简单”请求是出于历史原因。Web页面总是可以通过各种方式(例如创建和提交表单)执行一些跨源请求,因此当Web浏览器引入了发送跨源请求的原则性方式(跨源资源共享,或CORS)时,就决定这样的“简单”请求可以免于预先选项
检查。
我有这个问题,其中由于某种原因,我不能发送数据到另一个PHP脚本与POST通过API。 我已经检查了其他解决方案并清理了我的代码,但它仍然无法工作。 也许我错过了什么。 这是我的密码: 印刷品: 数组(0){} 我还测试了在PHP中解析Javascript读取中显示的解决方案,但它没有解决问题。我仍然没有在我的PHP脚本中获得POST数据。
问题内容: 我有一个nodejs应用程序,它可以处理用户的请求并接收我要代理到内部API服务的cookie。如何通过使用节点获取来解决这个问题? 请不要提供超级代理。 问题答案: 您应该能够通过在请求的标头中设置cookie来传递cookie:
本文向大家介绍HTTP fetch发送2次请求的原因?相关面试题,主要包含被问及HTTP fetch发送2次请求的原因?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: fetch发送post请求的时候,总是发送2次,第一次状态码是204,第二次才成功? 原因很简单,因为你用fetch的post请求的时候,导致fetch 第一次发送了一个Options请求,询问服务器是否支持修改的请求头,如
我正在使用PHP rest API将数据从JS客户机发布到PHP8服务器。我正在使用JS方法。当使用时,formdata被发送到PHP的全局$_post中,但是由于我需要更新数据,我不得不使用。不知何故,Google Chrome没有将格式数据发送到服务器,我也不知道为什么。有人知道原因吗?
问题内容: 由于某种原因,我无法将字符“ 3”写入页面上的输入元素。 这段代码: 导致在登录输入中写入“ 1245” …有人可以帮忙吗?我使用python 2.7,最新的chrome和最新的chromedriver 编辑: 也不管用。 -字符串中仅缺少“ 3” … 起作用的是 正如安德森(Andersson)在下文中建议的那样,但这不是解决方案。 我在Google搜索框中进行了尝试,并且遇到了相同
我有一个主干模型,我正试图销毁它,但没有随请求发送任何参数,因此服务器返回一个“Delete 404 not found”错误。 我承认我的结构有点奇怪,因为我正在根据项目是否已经在列表中创建/销毁它们。 销毁前