不存储POST数据(json)

I have this bit of javascript:

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

and this bit of PHP (in 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;

I am trying to post data to an external site using a proxy. From there, I append the picid that the site responds with and append it to the URL to get the image URL.

Am I missing something here? I am not getting anything in response and it seems like my data is not even being posted (when I try echo $json after the first line in proxy.php, I get an empty string). Why am I not able to echo the JSON? Is my implementation correct?

Thanks!

In your Javascript code, you are using this :

{ data : jsonString }

So, from your PHP code, should you not be reading from $_POST['data'], instead of $_POST['json'] ?


If necessary, you can use var_dump() to see what's in $_POST :

var_dump($_POST);


Edit after the comment : if you are getting a JSON result such as this :

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

This is a JSON object -- which means, after decoding it, you should access it as an object in PHP :

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

Note : I don't see a picid element in that object -- maybe you should instead use pic ?


Here too, though, you might want to use var_dump(), to see how your data looks like :

var_dump($response);

try this:

$json = $_POST['data'];

or even better do

var_dump($_POST);

to see what is actually in your post when you start