我面临的情况对我来说真的很新。我会尝试简单地解释它 一步一步。
1)在页面A(用户的表单)中,我从字段中获取一些值并将其作为jQuery AJAX POST发送到页面B.这是代码的主要部分,它是&#39 ; s工作正常:
$(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 action"和"方法作为POST"直接在表单定义中。
2)页面B正确地从页面A接收POST值并使用它来对页面C进行另一次POST,但这次使用cURL。在这个时候,一切仍然按预期工作。我可以阅读第B页的回复,没关系。这是代码:
PAGE B代码:
<?php
$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 "<span class='response'>OK</span>";
?>
3)问题出现了,当页面B收到来自页面C的de响应时,它会在浏览器中显示响应,我需要将此响应发送到页面A,其中可以在de jQuery AJAX回调函数中捕获它。页面A(用户的表单)需要始终可见。
在寻求帮助之前,我一整天都在努力解决这个问题。所以,如果有人能帮助我解决这个问题,我会很高兴。也欢迎替代解决方案。
编辑:(原创功能 - 这种方式不起作用,我不知道为什么,甚至添加了行&#34;返回false&#34;)。
$(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);
});
改为:(现在它有效 - 注意线路#34;返回错误;&#34;,它很重要)
$("#myForm").submit(function(e)
{
var formURL = $(this).attr("action");
$.ajax(
{
url : formURL,
type: "POST",
success:function(data, textStatus, jqXHR)
{
alert("success");
alert(data);
},
error: function(jqXHR, textStatus, errorThrown)
{
alert("fail");
}
});
//STOP default action
return false;
});
$("#myForm").submit();
答案 0 :(得分:0)
问题出在jQuery AJAX插件中,我改变了AJAX函数的声明方式,现在它正在按需运行。请参阅本文代码中的EDIT和CHANGED部分以获取正确的代码。
感谢您的评论,帮了很多忙!