多种形式的多个POST请求

时间:2018-07-27 10:14:18

标签: php jquery ajax

我有以下表格,其中仅包含电子邮件输入。

<form action="model.php" name="f1mail" method="POST" id="form45">
    <input id="field0" type="email" name="email" class="field" required>
    <input type="submit" class="start submit-button" value="Next">
</form>

提交表单后,我需要使用此客户信息做两件事。 首先,我需要将此电子邮件发送到另一个服务器上托管的数据库。其次,我需要在同一服务器上调用一个php文件。

为此,我在表单的操作中调用了php文件,然后执行了此AJAX代码以对外部url进行请求:

$(document).ready(function() {
    // Process the form
    $('#form45').submit(function(event) {
        // AJAX request
        $.ajax({
            url         : 'https://my_url?&callback=',
            data        : 'email=' + email,
            type        : 'POST',
            dataType    : 'jsonp',
            success     : function(resp) {
                alert(resp);
            },
            error       : function(e) {
                alert('Error: ' + e);
            }
        });
    });
});

但这不起作用。有谁知道两个人如何同时向两个不同的URL提交表单的相同信息?我不知道是否还有其他方法,它不一定是AJAX,也许使用Python和Flask或其他语言更容易实现。

谢谢!

1 个答案:

答案 0 :(得分:0)

我终于解决了。对于有相同问题的任何人,这是我所做的解决方案。

正如某些人在评论中告诉我的那样,我使用PHP的cURL库发出POST请求,然后执行我需要的所有其他操作。让我解释...

您可以在表单的操作中看到model.php页面,而无需调用两个不同的URL,而只是在自己的服务器中调用了一个URL。该页面与电子邮件信息有关。但是在所有这些工作开始之前,我先放置了这段代码,以便对外部URL进行POST请求,然后再执行之前的代码。

<?php
    // Get cURL resource
    $curl = curl_init();
    // Set up the request for external_url
    curl_setopt_array($curl, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => 'https://external_url',
        CURLOPT_USERAGENT => 'sample',
        CURLOPT_POST => 1,
        CURLOPT_POSTFIELDS => array(
            'email'          => $email,
            // More vars if needed
            ...
        )
    ));
    // Send the request and check errors
    $resp = curl_exec($curl);
    if(!$resp){
        die('Curl error: ' . curl_error($curl));
    }
    // Clear up resources
    curl_close($curl);
?>