POST 请求 JSON 中的数据 Javascript

POST Request with JSON Data in Javascript

我一直在尝试通过 JS 脚本发送 JSON 有效载荷,但无论我写什么,我的 webhook 似乎都无法看到有效载荷。

这是我从各种在线资源中收集的代码:

let xhr = new XMLHttpRequest();

xhr.open("POST","https://webhook.site/4530328b-fc68-404a-9427-3f2ccd853066/",true);

xhr.setRequestHeader("Content-Type", "application/json");

let data = JSON.stringify({'eventType' : 'test'});

xhr.send(data);

我不是 JS 开发人员,但在我看来这应该可行。但是每次我 运行 这个片段 POST URL 都没有显示任何东西:/

知道为什么会在这里 :) 吗?

感谢您的宝贵时间!

我建议你使用 axios,它会是这样的,你会从你的 post 请求中得到响应

const response = await axios.post('https://webhook.site/4530328b-fc68-404a-9427-3f2ccd853066/', {'eventType' : 'test'});

在您的示例中,您尝试使用 JavaScript 连接的 webhook.site 服务未启用(默认情况下)使用现代的适当 CORS headers浏览器尊重并强制执行以提高用户安全性。您选择的浏览器中的开发人员控制台应该向您指出这一点;我返回的错误是:

Access to XMLHttpRequest at 'https://webhook.site/5c7a5049-9c5e-4bf7-b1cf-0e05f6503bfa' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

如错误所述,请求的资源未响应任何有效的 Access-Control-Allow-Origin header,这将阻止 POST 本身被完全执行。在 webhook.site 中,您可以 select 用户界面顶部的 CORS Headers 复选框,使服务能够发送正确的 CORS header 以使其正常工作。

let xhr = new XMLHttpRequest();

xhr.open("POST","https://webhook.site/5c7a5049-9c5e-4bf7-b1cf-0e05f6503bfa",true); // configuration interface at https://webhook.site/#!/5c7a5049-9c5e-4bf7-b1cf-0e05f6503bfa/e14fc471-4bc4-410f-b16a-0755a231fb12/1

xhr.setRequestHeader("Content-Type", "application/json");

let data = JSON.stringify({'eventType' : 'test'});

xhr.send(data);