正确地将JSON格式返回到页面

时间:2015-08-09 19:57:58

标签: javascript php json

我正在尝试捕获纬度和经度,然后将其传递给Google地图以返回一些数据,然后从响应中确定邮政编码并使用它。

当我直接将它调用到浏览器时,我会在页面上得到一个回复​​,最终结果如下:

{"zip":"90029"}

但是,当我尝试在Chrome的开发者工具中查看它时,它表示"此请求没有响应数据"。所以好像我的JSON没有被正确编码,或者我没有在JSON格式类型标题中正确地将它返回到页面。

我尝试了各种各样的东西,似乎没有任何东西可以正常工作,以便让它返回JSON数据。

这是我现在的代码:

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

$now = @date("Ymd-His");

$myFile = "loc" . $now . ".txt";
$fh = fopen("locations/" . $myFile, 'w') or die("can't open file");

$lat = $_REQUEST['lat'];
$long = $_REQUEST['long'];
$type = $_REQUEST['type'];
$phone = $_REQUEST['phone'];
$loc = $_REQUEST['typed_location'];

$url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$long&sensor=false";




$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_ENCODING, "");
$curlData = curl_exec($curl);
curl_close($curl);

$address = json_decode($curlData, true);

$temp_data = $address['results'][0]['formatted_address'];
$temp = explode(", ", $temp_data);
$temp_2 = explode(" ", $temp[2]);
$zip = $temp_2[1];

fwrite($fh, $zip);
fclose($fh);


$array = array("zip" => $zip);

$t = json_encode($array);
echo $t;

1 个答案:

答案 0 :(得分:0)

对于任何想要解决此问题的人 - 在使用跨域时,请务必通过将以下内容设置为标题来允许访问控制:

header("access-control-allow-origin: *");