【问题标题】:PHP Forwarding JSON ObjectPHP 转发 JSON 对象
【发布时间】:2013-02-23 13:28:25
【问题描述】:

出于安全原因,我必须将 JSON 对象从 Jquery 脚本转发到 PHP 脚本。这是我所做的:

<?php
header('Access-Control-Allow-Origin: *');

$input = @file_get_contents('php://input');
$content = json_encode( $input );

$url = $_GET["trakt_url"]."KEY";

$ch = curl_init($url);                                                                 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json')                                                                       
);                                                                                                                   

$result = curl_exec($ch);
echo $result;
?>

如果我记录 $content 我会得到 JSON 对象,但我发布到的页面 ($url) 会得到一个空对象。有人知道我做错了什么吗?

已解决(有人答对了但答案被删除了?!)

curl_setopt($ch, CURLOPT_POSTFIELDS, "json=$content");

【问题讨论】:

  • 设置内容长度。

标签: php json


【解决方案1】:

尝试在请求头中设置内容长度:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($content))                                                                       
);                                                                                                                   

您还需要确保将 POSTFIELDS 定义为 urlencoded 字符串,因为将其设置为数组会将内容类型覆盖为 multipart/form-data。这将起作用:

curl_setopt($ch, CURLOPT_POSTFIELDS, "json=$content"); 

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-02
  • 2014-11-09
  • 2012-08-09
相关资源
最近更新 更多