2011-04-15 143 views
0

我有這樣的一些JavaScript:不存儲POST數據(JSON)

 
var jsonString = "some string of json"; 
$.post('proxy.php', { data : jsonString }, function(response) { 
    var print = response; 
    alert(print); 

和該位的PHP(在proxy.php):

 

     $json = $_POST['json']; 

     //set POST variables, THIS IS WHERE I WANT TO POST TO! 
     $url = 'http://my.site.com/post'; 

     //open connection 
     $ch = curl_init(); 

     //set the url, number of POST vars, POST data 
     curl_setopt($ch,CURLOPT_URL, $url); 
     curl_setopt($ch,CURLOPT_POST, 1); 
     curl_setopt($ch,CURLOPT_POSTFIELDS, "data=" . urlencode($json)); 

     //execute post (the result will be something like {"result":1,"error":"","pic":"43248234af832048","code":"234920348239048"}) 
     $result = curl_exec($ch); 
     $response = json_decode($result); 

     $imageHref = 'http://my.site.com/render?picid=' . $response['picid']; 

     //close connection 
     curl_close($ch); 

     echo $imageHref; 

我試圖發佈數據使用代理的外部網站。從那裏,我追加網站響應的picid並將其附加到URL以獲取圖像URL。

我在這裏錯過了什麼嗎?我沒有得到任何迴應,並且好像我的數據甚至沒有被髮布(當我嘗試在proxy.php的第一行之後嘗試echo $ json時,我得到一個空字符串)。爲什麼我無法回顯JSON?我的實現是否正確?

謝謝!

回答

2

在JavaScript代碼,您使用的是這樣的:

{ data : jsonString } 

所以,從你的PHP代碼,你應該不能從$_POST['data']閱讀,而不是$_POST['json'],?


如果有必要,可以使用var_dump(),看看有什麼在$_POST

var_dump($_POST); 
評論後


編輯:如果你得到一個JSON採用這樣:

{"result":1,"error":"","pic":"43248234af832048","code":"234920348239048"} 

這是一個JSON對象 - 這意味着,在對它進行解碼之後,您應該將它作爲PHP中的一個對象進行訪問:

$response = json_decode($result); 
echo $response->pic; 

注意:我沒有在該對象中看到picid元素 - 也許您應該改用pic?


這裏也是,不過,你可能想使用var_dump(),就看你的數據看起來像:

var_dump($response); 
+0

ooooo我so sooo close – Neal 2011-04-15 20:36:12

+0

我比你更快32秒? ;-)地獄^^ – 2011-04-15 20:37:07

+0

是的!我現在正確地獲取數據。另一個快速問題,我是否正確地將JSON數據picid附加到URL的末尾? – 2011-04-15 20:39:57

0

試試這個:

$json = $_POST['data']; 

甚至做得更好

var_dump($_POST); 

查看您的帖子中實際存在的內容開始

+0

非常感謝你! – 2011-04-15 20:41:10