2013-10-23 65 views
0

我使用curl發送請求到另一個頁面,返回值阿賈克斯,嫋嫋重定向到另一個,只是返回值阿賈克斯,但最終的結果我從阿賈克斯獲得具有包含HTML代碼,我的代碼:捲髮返回HTML代碼時,我阻止了Ajax請求

PHP:

   $ch = curl_init(); 
       curl_setopt($ch, CURLOPT_URL, 'http://abc.com'); 
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
       curl_setopt($ch, CURLOPT_MAXREDIRS, 0); 
       curl_setopt($ch, CURLOPT_RETURNTRANSER, 0); 
       curl_setopt($ch, CURLOPT_POST, 1); 
       curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); 
       $data = curl_exec($ch); 
       curl_close($ch); 
       echo 'my value'; 

AJAX:

jQuery.ajax({ 
       type: "POST", 
       url: "http://pagephp.com", 
       data: data, 
       success: function(result) { 
        alert(result); 
       } 
      }); 

警報將顯示:<html>...</html> my value

幫我

+0

什麼是你希望要回?一個JSON對象或一些Javascript代碼?您可能需要在您的ajax調用中將「dataType」選項設置爲您所期望的。查看[jquery ajax文檔](http://api.jquery.com/jQuery.ajax/)以獲取更多詳細信息。 –

+0

我需要得到一個字符串,AJAX,JSON不是哦 – user2912470

回答

0

您需要啓用CURLOPT_RETURNTRANSFER爲true/1,那麼您從curl_exec返回的值將是您成功操作的實際結果。換句話說,成功時不會返回TRUE。雖然它會在失敗時返回FALSE

http://php.net/manual/en/function.curl-exec.php

您應該啓用重定向的CURLOPT_FOLLOWLOCATION選擇,但是這將是一個問題,如果你在的safe_mode和/或open_basedir的服務器有效,這可能會導致與捲曲的問題爲好。

header('Content-type: application/json'); 

      $ch = curl_init(); 
      curl_setopt($ch, CURLOPT_URL, 'http://abc.com'); 
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
      curl_setopt($ch, CURLOPT_MAXREDIRS, 0); 
      curl_setopt($ch, CURLOPT_RETURNTRANSER, 1); 
      curl_setopt($ch, CURLOPT_POST, 1); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); 
      $data = curl_exec($ch); 
      curl_close($ch); 
      echo json_encode('my value'); 

JQUERY

jQuery.ajax({ 
       type: "POST", 
       url: "http://pagephp.com", 
       data: data, 
       success: function(result) { 
        alert(result); 
       } 
      }); 
+0

,我不想從abc.com獲得價值。它是發送參數的頁面,我向ajax回送任何值 – user2912470

+0

如果您不需要從abc.com返回值,您需要什麼? – underscore

+0

是的,我會送參數爲abc,不從它那裏得到任何東西,那麼我將消息發送給阿賈克斯 – user2912470