2011-09-11 88 views
0

我使用下面的PHP代理的響應:PHP代理AJAX不返回POST

//Store the URL 
$jURL = $_POST['jURL']; 
//Store the POST data 
$jData = $_POST['post_data']; 

//And let cURL work it's magic. 
$ch = curl_init(); 

//Set the URL 
curl_setopt($ch, CURLOPT_URL, $jURL); 
//Enable POST data 
curl_setopt($ch, CURLOPT_POST, true); 
//Use the $pData array as the POST data 
curl_setopt($ch, CURLOPT_POSTFIELDS, $jData); 

//curl_exec automatically writes the data returned 
$response = curl_exec($ch); 
curl_close($ch); 
echo $response; 

,我通過調用它:

var dataString = { 'Contact': Contact, 'address1': address1, 'address2': address2, 'city': city, 'state': state, 'zip': zip, 'Phone1': primPhone, 'Phone2': secPhone, 'email': email, 
           'key2': key2, 'key5': key5, 'uhsgradyr': uhsgradyr, 'uhighlevel': uhighlevel, 'ucourseint': ucourseint, 'uCampaignID': uCampaignID, 'utextperm':utextperm, 
           'uleaddate': uleaddate, 'uleadtime':uleadtime}; 

       var postData = {jURL: 'http://test.com/candidate_test.php', postData: dataString}; 
       $.ajax({ 
         type: "POST", 
         url: "proxy.php", 
         data: postData, 
         success: function(data) { 
           window.location = "thankyou.php"; 
         }, 
         error:function(xhr, ajaxOptions, thrownError){ 
           console.log(xhr.responseText); 
         } 
       }); 

的問題是,爲什麼我還沒有得到任何迴應?

回答

1

好吧,其實我去到現場..你需要更換一些javascript:

$(".Submit").click(function() { 

應該

$('#form').submit(function(ev) { 
    ev.preventDefault(); 

在本代碼,你從來不說「停止表單提交和反應阿賈克斯「,這是ev.preventDefault()爲你做的。


老答案: 您應該設置一個選擇:

curl_setopt(CURLOPT_RETURNTRANSFER, true);

確保$response實際上包含捲曲的響應。請參閱curl_exec()上的文檔。

+0

謝謝,你有什麼不對嗎?我有點困惑,我有什麼dataString我有 – aherlambang

+0

,仍然沒有迴應 – aherlambang

+0

@aherlambang:你確定「PHP代理」的作品嗎?即從'$ _POST'替換所有東西你自己的變量,並自己調用PHP文件。另外,請確保你通過Chrome的網絡檢查器或Firefox Firebug中的Network選項卡檢查ajax調用。 – chelmertz

1

這可能是因爲你設置jData = $_GET['post_data'];而不是jData = $_POST['post_data'];

在你的jQuery .ajax()呼叫你設置type: "POST"所以數據將在$_POST沒有$_GET

+0

做到了這一點,它沒有幫助,上面的PHP代理也應該創建一個AJAX響應? – aherlambang

+0

當你說「沒有得到迴應」,你的意思是在你的PHP代理腳本或HTML頁面?如果它在HTML頁面中,這並不奇怪,因爲您從不輸出PHP文件中的任何內容。 ['curl_exec'](http://php.net/manual/en/function.curl-exec.php)不會自行輸出任何東西。 –

+0

它在HTML頁面中..我可以在PHP代理腳本中看到輸出..所以如何在代理腳本中的PHP文件中輸出?我試圖迴應curl_exec,但我仍然沒有看到任何東西 – aherlambang