1
我试图将代码从JQuery转换为PHP来执行json POST请求到远程服务器。JSON - 将代码从JQuery转换为PHP
我jQuery代码是:
$(document).ready(function() {
$('#button').click(
function() {
$.ajax({
method: "POST",
url: "http://http://www.fedex.com/trackingCal/track",
data: {
action: "trackpackages",
format: "json",
locale: "it_IT",
version: "1",
data: '{"TrackPackagesRequest":{"appType":"WTRK","uniqueKey":"","processingParameters":{},"trackingInfoList":[{"trackNumberInfo":{"trackingNumber":"780909642310","trackingQualifier":"","trackingCarrier":""}}]}}'
}
})
.done(function(msg) {
console.log(msg);
});
}
)
});
我想从PHP做相同的POST请求调用,但我不能。
我的PHP代码:
$data = array("action" => "trackpackages", "data" => array ('TrackPackagesRequest' => array('appType' => 'WTRK', 'uniqueKey' => '', 'processingParameters' => '{}', 'trackingInfoList' => array(array('trackNumberInfo' => array('trackingNumber' => '780909642310', 'trackingQualifier' => '', 'trackingCarrier' => ''))))), 'format' => 'json', 'locale' => 'it_IT', 'version' => '1');
$data_string = json_encode($data);
$ch = curl_init('http://www.fedex.com/trackingCal/track');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
echo $result;
远程服务器没有适当的反应,而且似乎没有得到正确编码的数据。有人可以帮我解决这个问题吗?
谢谢!
在jQuery代码的'data'参数里面'data'只是一个字符串(看起来像JSON),而在你的PHP代码它是一个对象。也许尝试调整。 – Sirko
感谢您的支持。我试过了你的建议,但还是不行。 –