需要创建两个函数来从我的网站表单发布数据

问题描述 投票:0回答:1

我有一个 HTML 格式的网站,在按下“Sumbit”后,我需要将该信息传递给 Docusign 和 Zapier。 我已经用两个按钮完成了它,但试图找出一种使用 JavaScript 用一个按钮完成它的方法。

理想情况下,当按下提交按钮时,我需要在不打开 Zapier 成功页面的情况下将数据传递给 Zapier,然后重定向到 Docusign 页面,将我的 Web 表单中的所有信息传递到那里。 我怎样才能用 Javascript 实现它?

这是我的带有两个按钮的 html 代码:

<form class="item" id="form" action="https://demo.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=*********" method="POST">
    <div class="box">
        <div class="form-group">
            <label>What product are you applying for?</label>
            <input type="text" class="form-control" name="product" value="EFTPOS">
        </div>

        <div class="title-form">
            <h5>Business Details:</h5>
        </div>

        <div class="form-group">
            <label>Merchant Trading Name:</label>
            <input type="text" class="form-control" name="merchantName">
        </div>

        <div class="text-center">
            <button class="btn btn-success btn-lg" type="submit" formaction="https://demo.docusign.net/Member/PowerFormSigning/*******" name="button" onclick="$('form').attr('target', '_blank')">Submit</button>
            <button class="btn btn-success btn-lg" type="submit" formaction="https://hooks.zapier.com/hooks/catch/*****/*****/" onclick="$('form').attr('target', '_blank')">BUTTON 2</button>
        </div>
    </div>
</form>

我已经尝试过另一篇与我类似的帖子中的建议代码,但它不起作用: 当我在下面尝试这段代码时,它根本没有做任何事情:

$(function () {
    var dataString = $(this).serialize();
    $('#form').on('submit', function () {
        $.ajax({
            type: 'POST',
            url: "https://demo.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=963864ea-9fde-4243-bcd1-380c5747876a&env=demo&acct=38dc928a-8528-4368-ba2b-d9d980c9a213&v=2",
            crossDomain: true,
            data: dataString,
            success: function (responseData, textStatus, jqXHR) {
                var value = responseData.someKey;
            },
            error: function (responseData, textStatus, errorThrown) {
                alert('POST failed.');
            }
        }).then(function () {
            $.ajax({
                type: 'POST',
                url: "https://hooks.zapier.com/hooks/catch/14888944/33njn26/silent/",
                crossDomain: true,
                data: dataString,
                success: function (responseData, textStatus, jqXHR) {
                    var value = responseData.someKey;
                },
                error: function (responseData, textStatus, errorThrown) {
                    alert('POST failed.');
                }
            })
        })

        return false
    })
})

当我尝试下面的代码时,它会将数据发布到 Zapier(第一个链接)但不会将其发布到 Docusign:

$(function () {
    $('form').submit(function () {
        var data = $(this).serialize();
        
        $.post("https://hooks.zapier.com/hooks/catch/14888944/33njn26/silent/", data, function () {});
        $.post("https://demo.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=963864ea-9fde-4243-bcd1-380c5747876a&env=demo&acct=38dc928a-8528-4368-ba2b-d9d980c9a213&v=2", data, function () {});

        return false;
    });
});

它给了我这个错误:

"index.html:1 从来源“https://demo.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=963864ea-9fde-4243-bcd1-380c5747876a&env=demo&acct=38dc928a-8528-4368-ba2b-d9d980c9a213&v=2”访问 XMLHttpRequest null' 已被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。

jquery.min.js:4
邮政 https://demo.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=963864ea-9fde-4243-bcd1-380c5747876a&env=demo&acct=38dc928a-8528-4368-ba2b-d9d980c9a213&v=2 net::ER3R_FAILED重定向)”

Docusign 链接在单独的 html 按钮中工作,但在执行上述代码时不起作用

javascript html jquery docusignapi zapier
1个回答
0
投票

DocuSign 目前不支持 CORS。这是一个长期存在的问题,但应该很快就会得到解决。

4/14/23 是当前计划的发布日期,您应该在开发者帐户中的“设置”菜单下看到“CORS”。在 CORS 页面上,您将能够打开 CORS。此外,您还会在集成密钥上看到一个选项,用于添加原始 URL 以及批准的方法(POST、PUT、GET、DELETE、HEAD)。

生产中出现的“CORS”预计到达时间定为 23 年 5 月 2 日。这些日期可能会发生变化,并可能会进一步推迟。 DocuSign 还没有关于此的公开文档,因为该功能尚未发布。

© www.soinside.com 2019 - 2024. All rights reserved.