我有这个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 回答
在您的Javascript代码中,您使用的是:
那么,从您的PHP代码中,您是否应该从
$_POST['data']
而不是$_POST['json']
读取?如有必要,您可以使用var_dump()查看
$_POST
中的内容:Edit after the comment : 如果您收到如下的JSON结果:
这是一个JSON对象 - 这意味着,在解码之后,您应该将其作为PHP中的对象访问:
注意:我没有在该对象中看到
picid
元素 - 也许您应该使用pic?不过,您也可以使用
var_dump()
来查看数据的样子:试试这个:
甚至更好
当你开始时看到你帖子中的内容