page一个帖子值到页面B,使用cURL将另一个帖子发送到页面C并将响应返回到页面A.

时间:2013-12-09 19:55:22

标签: javascript php jquery ajax curl

我面临的情况对我来说真的很新。我会尝试简单地解释它 一步一步。

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();

1 个答案:

答案 0 :(得分:0)

问题出在jQuery AJAX插件中,我改变了AJAX函数的声明方式,现在它正在按需运行。请参阅本文代码中的EDIT和CHANGED部分以获取正确的代码。

感谢您的评论,帮了很多忙!