首页 文章

不存储POST数据(json)

提问于
浏览
0

我有这个javascript:

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 回答

  • 2

    在您的Javascript代码中,您使用的是:

    { data : jsonString }
    

    那么,从您的PHP代码中,您是否应该从 $_POST['data'] 而不是 $_POST['json'] 读取?

    如有必要,您可以使用var_dump()查看 $_POST 中的内容:

    var_dump($_POST);
    

    Edit after the comment : 如果您收到如下的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

    试试这个:

    $json = $_POST['data'];
    

    甚至更好

    var_dump($_POST);
    

    当你开始时看到你帖子中的内容

相关问题