phpのjson_decode
関数で 'jsonp'リクエストを解析中に問題が発生しました。PHP: 'JSONP'の出力対 'JSON'の処理とその解析?
私の質問は
です。 「jsonp」でコールバック関数を使用するのはどういう意味ですか、それだけでは、どういう意味で使うのでしょうか? ?
b。 「jsonp」形式で受け取った構文エラーを修正するにはどうすればよいですか?
以下は、私が取得したコードと応答を示しています。
1.私はその後、私は私が推測する理由は、エラー・ノー4の意味JSON_SYNTAX_ERRORをスローしない受信した出力を、json_decodeしようとPHPのカール
$url = 'https://ssl.domain.com/data/4564/d.jsonp';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
$feed = curl_exec($ch);
curl_close($ch);
echo $feed = gzdecode($feed); // Success its displays the jsonp feed
2.とサンプルのURLをリクエストjsonpの文字列型の名前は引用符で囲まれていないからです。例えばCategories
、Name
、Position
など
$json_feed = json_decode($feed);
$error = json_last_error();
echo $error; // Throws error no. 4
3. RAW 'JSONP' URLからの出力。
domain_jsonp_callback({
Categories:[
{
Name:"Artifacts",
Position:14,
Count:70,
ImageUrls:{
i100:"//s3-eu-west-1.amazonaws.com/s.domain.com/1.png",
i120:"//s3-eu-west-1.amazonaws.com/s.domain.com/2.png",
i140:"//s3-eu-west-1.amazonaws.com/s.domain.com/3.png",
i180:"//s3-eu-west-1.amazonaws.com/s.domain.com/4.png",
i220:"//s3-eu-west-1.amazonaws.com/s.domain.com/5.png",
i280:"//s3-eu-west-1.amazonaws.com/s.domain.com/6.png"
}
}
]
});
回答を確認してください:http://stackoverflow.com/a/5081588/1788516 – Perry
@Perry、ありがとう私はその答えを見ましたが、応答するサーバーがコールバック機能を送信する何らかの理由があります。そのコールバック関数は何らかの目的に適している必要がありますか? –