1

セキュリティ上の理由から、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");

4

1 に答える 1

1

リクエスト ヘッダーで content-length を設定してみてください。

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

POSTFIELDS が urlencoded 文字列として定義されていることも確認する必要があります。これを配列として設定すると content-type が にオーバーライドされるためmultipart/form-dataです。これはうまくいきます:

curl_setopt($ch, CURLOPT_POSTFIELDS, "json=$content"); 
于 2013-02-23T13:32:51.313 に答える