Home > Software engineering >  Making AJAX JSON request to PHP file (parse error)
Making AJAX JSON request to PHP file (parse error)

Time:05-03

I have a PHP file in which I'm getting data from a geoJSON file, I'm going through the data and storing what I need in a new associative array, then sorting it. I need to make an AJAX call to this PHP file to get the sorted data through, but it's throwing "SyntaxError: Unexpected token a in JSON at position 0", the "a" being "a"rray... from the response, so I believe it's going through as a string.

My PHP file:

<?php

$countryBordersJson = file_get_contents("../js/countryBorders.geojson");
$countryBordersJsonData = json_decode($countryBordersJson, true);

$dataLength = count($countryBordersJsonData['features']);
$countryNames = array();

for($i = 0; $i < $dataLength; $i  ) {
    $countryName = $countryBordersJsonData['features'][$i]['properties']['name'];
    $countryIsoa2 = $countryBordersJsonData['features'][$i]['properties']['iso_a2'];

    $country[$i]['countryName'] = $countryName;
    $country[$i]['iso_a2'] = $countryIsoa2;

    array_push($countryNames, $country[$i]);
}

sort($countryNames);
$data = json_encode($countryNames);

$decode = json_decode($data, true);

$output['status']['code'] = "200";
$output['status']['name'] = "ok";
$output['status']['description'] = "success";
$output['data'] = $decode;

header('Content-Type: application/json');

var_dump($output);

?>

My AJAX request:

$.ajax({
      url: "libs/php/countryBorders.php",
      dataType: "json",
      type: "GET",
      success: function(result) {
        console.log(result);
      },
      error: function(jqXHR, textStatus, errorThrown) {
        console.warn(jqXHR.responseText, textStatus, errorThrown);
      }
    })

I'm still getting to grips with JSON, PHP etc. so would appreciate any help.

CodePudding user response:

Are you sending the data with var_dump ? It cannot work like that. You need to send a string :

echo json_encode($output);
  • Related