我面临着一个对我来说非常陌生的情况。我会尽力让事情变得简单来解释它一步一步来。
1)在页面 A(用户表单)中,我从字段中获取一些值并将其作为 jQuery AJAX POST 发送到页面 B。这是主要代码片段,并且工作正常:
$(document).ready(function() {
var options = {
target: '#my-container',
dataType: 'html',
beforeSubmit: showRequest, // pre-submit callback
success: processOK, // post-submit callback
error: processError,
clearForm: false
};
// bind form using 'ajaxForm'
$('#myForm').ajaxForm(options);
});
我直接在表单定义中定义“url 操作”和“POST 方法”。
2) 页面 B 正确接收来自页面 A 的 POST 值,并使用它向页面 C 进行另一个 POST,但这次使用 cURL。此时,一切仍按预期进行。我可以阅读B页的回复,这很好。这是代码:
B页代码:
$cURL = curl_init('http://200.201.194.133/exampleurl/MakeCall.php');
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
$dados = array(
'type' => '0',
'dest' => $_POST["dest"],
'content' => $_POST["content"],
'priority' => '-1',
'return' => '1',
'answer' => '40',
'ringtime' => '26',
'psid' => 'ct1253117',
'ctid' => '9'
);
curl_setopt($cURL, CURLOPT_POST, true);
curl_setopt($cURL, CURLOPT_POSTFIELDS, $dados);
$result = curl_exec($cURL);
curl_close($cURL);
echo "OK";
?>
3)问题来了,当页面 B 收到来自页面 C 的响应时,它会在浏览器中显示响应,我需要将此响应发送到页面 A,其中 a 可以在 jQuery AJAX 回调函数中捕获它。页面 A(用户表单)需要始终可见。
在寻求帮助之前,我花了一整天的时间试图解决这个问题。因此,如果有人能帮助我解决这种情况,我将非常高兴。也欢迎替代解决方案。
编辑:(原始函数 - 这样就行不通,我不知道为什么,甚至添加了“return false”行)。
$(document).ready(function() {
var options = {
target: '#my-container',
dataType: 'html',
beforeSubmit: showRequest, // pre-submit callback
success: processOK, // post-submit callback
error: processError,
clearForm: false
};
// bind form using 'ajaxForm'
$('#myForm').ajaxForm(options);
});
更改为:(现在可以了 - 注意“return false;”行,这很重要)
$("#myForm").submit(function(e)
{
var formURL = $(this).attr("action");
$.ajax(
{
url : formURL,
gõ: "BÀI ĐĂNG",
success:function(data, textStatus, jqXHR)
{
alert("success");
alert(data);
},
error: function(jqXHR, textStatus, errorThrown)
{
alert("fail");
}
});
//STOP default action
trả về sai;
});
$("#myForm").submit();
Tôi là một lập trình viên xuất sắc, rất giỏi!