【发布时间】:2018-12-26 21:46:03
【问题描述】:
我正在使用“获取”对我的节点服务器进行后调用。我正在尝试通过单击按钮来执行此操作。
当我单击按钮时,会发送一个 OPTIONS 请求,但浏览器不会发送后续的 POST 调用。
在多次点击时,浏览器会不断发送选项请求,并且在多次尝试中只会发送一次发布请求。
let data = {name: "Butternut cucumberpatch", age: 26}
let headers = new Headers()
headers.append("Content-type", "application/json")
fetch(join(apiPath, "/user"), {
method: "POST",
headers: headers,
body: JSON.stringify(data)
}).then(response => response)
(1) 代码工作在我同事的 chrome 浏览器上,而不是我的。 chrome版本是一样的。 (2) 这在 POSTMAN、Safari 上运行良好。 (3) 我认为本机 fetch 可能存在问题,所以我尝试使用 'fetch'、'unfetch'、'request' 模块。但仍然面临同样的问题。
【问题讨论】:
-
问题可能出在服务器上。
-
显示您的实际测试脚本,包括
console.log以展示您如何获得响应。当前脚本不会对结果做任何事情。 -
@Barmar 它适用于邮递员。还是服务器的问题吗?
-
您发布的是飞行前
OPTIONS请求。您是否也在浏览器中看到了POST请求? -
@Barmar 直到我再次发送帖子请求几次。请求发生在点击事件上。每次单击按钮时都会运行上述发布请求代码,但是直到我进行 3-4 次尝试后发布请求才会发生。仅发送选项。这是随机的。
标签: javascript google-chrome cors http-headers fetch-api