我有以下表格,其中仅包含电子邮件输入。
<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或其他语言更容易实现。
谢谢!
答案 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);
?>