javascript Zapier网络钩子和 AJAX 请求

oknwwptz  于 2023-01-07  发布在  Java
关注(0)|答案(6)|浏览(110)

有没有办法从客户端应用程序触发Zapier webhook?
我似乎无法成功地进行 AJAX 请求,并总是得到:

XMLHttpRequest cannot load https://zapier.com/hooks/catch/..... 
The request was redirected to 'https://zapier.com/hooks/catch/..../', 
which is disallowed for cross-origin requests that require preflight.
vq8itlhq

vq8itlhq1#

截至2016年1月15日,Zapier不支持使用来自浏览器的POST请求捕获webhook(由于浏览器的预检请求需要CORS头)。
不过,带有查询字符串值的GET请求也可以工作。

xkrw2x1b

xkrw2x1b2#

Zapier不支持CORS。我让它工作的方法是使用图像。

var newImage = new Image();
newImage.src = "https://zapier.com/hooks/catch/myhook?param=one";

<img height="0" width="0" src="https://zapier.com/hooks/catch/myhook?param=one">
iyfjxgzm

iyfjxgzm3#

这对我很有效:

try {
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "https://zapier.com/hooks/catch/myhook");
    xhr.send(JSON.stringify({data: "example"}));
    console.log("Pushed to Zapier successfully!");
  } catch(e) {
    console.error(e);
  }
9cbw7uwe

9cbw7uwe4#

不能修改Content-Type标头
https://zapier.com/help/create/code-webhooks/troubleshoot-webhooks-in-zapier#posting-json-from-web-browser-access-control-allow-headers-in-preflight-response-error

sycxhyv7

sycxhyv75#

使用获取请求而不设置Content-Type也可以工作,

const response = await fetch(
`https://hooks.zapier.com/hooks/catch/${code}/${code}`,
    {
  method: 'POST',
  body: JSON.stringify(payload)
    }
ssgvzors

ssgvzors6#

Zapier令人敬畏的支持团队在24小时内修复了CORS问题!
赞啊扎皮尔!

相关问题