reactjs - 与 GCP HTTP 端点反应
问题描述
我在 GCP 中创建了一个带有 HTTP 触发器的云函数。我正在尝试使用在请求fetch
中将 JSON 对象传递给此端点。POST
我已经尝试使用在functions-framework
本地服务器功能和部署到 GCP。如果我使用 Postman/dev 工具,我能够成功发出请求并收到正确的响应。
我有一个 React 应用程序,它在组件的功能中运行以下功能componentDidMount()
:
getData() {
const requestOptions = {
method: 'POST',
mode: 'cors',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Origin': 'AUTHORITY'
},
body: JSON.stringify({
"vendors": [{
"postcode": "12345",
"distance": 15
}, {
"postcode": "67890",
"distance": 15
}, {
"postcode": "13579",
"distance": 15
}, {
"postcode": "24680",
"distance": 25
}, {
"postcode": "10293",
"distance": 10
}],
"customer": "12345"
})
};
return fetch('http://localhost:8080/', requestOptions)
.then((response)=>response.json())
.then((responseJson)=>{return responseJson});
}
当我检查网络选项卡时,JSON 对象没有随请求一起传递。POST
请求和OPTIONS
请求都在“网络”选项卡中具有状态blocked
。我可以按下Edit and Resend
并附加正确的 JSON 对象,然后响应返回一个200
状态。
在 Cloud Function 内部,我目前将响应返回为:
res.set({ 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': '*', 'Access-Control-Allow-Methods': '*' }).send(result);
感觉问题出在 React 方面(JSON 没有随 POST 请求一起发送),但很可能是 CORS 问题。
解决方案
推荐阅读
- php - Yii2 - session_start(): 找不到保存处理程序'memcached' - 会话启动失败
- grep - 正则表达式中带有“\ n”的grep行为
- css - 如何让洗牌 css 动画在 Angular8 中工作?(类似的代码适用于 angular2)
- python - 如何在 django 3.0 的 __init__.py 中从 base.py 导入类。似乎无法在应用注册时设置 self.apps_ready
- swift - 按键的顺序将字典写入Plist
- mql4 - OrderClose 是在 OrderOpened 上方关闭订单 OP_SELL 并在下方关闭订单 OP_BUY?
- c# - WPF 上下文菜单命令未正确设置 IsEnabled
- c++ - 为什么同一主机上只有一个 UDP 客户端可以接收消息?
- java - 检索意图额外内容
- java - 运行代码时出现状态码 405 错误