Je suis tout à fait certain que tous les arguments que j'ai passés dans register()
ont des valeurs. C'est le code js
.SyntaxError: Jeton inattendu <dans JSON à la position 0 à JSON.parse (<anonymous>) - AngularJS
$scope.register = function(
$reg_code, $prov_code, $citymun_code, $brgy_code, $street,
$user_name, $user_email, $user_contact, $user_password
) {
//displays the arguments
alert("region: " + $reg_code + ", province: " + $prov_code + ", citymun: " + $citymun_code + ", barangay: "
+ $brgy_code + ", street: " + $street + ", user_name: " + $user_name + ", user_email: " + $user_email + ", user_contact: "
+ $user_contact + ", user_password: " + $user_password);
$http({
method: "POST",
url: "http://" + host + "/mobile/register.php",
data: JSON.stringify({
user_password_reg: $user_password,
user_email_reg: $user_email,
user_contact_reg: $user_contact,
user_name_reg: $user_name,
region: $reg_code,
province: $prov_code,
citymun: $citymun_code,
barangay: $brgy_code,
street: $street,
echo: "1",
success: "0",
user_acc_type: "log account"
}),
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).then(function(res) {
alert("success1: " + res.data.success1 + ", success2: " + res.data.success2 + ", success3: " + res.data.success3);
});
}
C'est le script php
<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json; charset=utf-8');
//converts data to post
$postData = file_get_contents("php://input");
$post = json_decode($postData);
$echo = array();
$echo["success1"] = 0;
$echo["success2"] = 0;
$echo["success3"] = 0;
if(isset($post["region"]) &&
isset($post["province"]) &&
isset($post["citymun"]) &&
isset($post["barangay"]) &&
isset($post["street"]) &&
isset($post["user_password_reg"]) &&
isset($post["user_name_reg"]) &&
isset($post["user_email_reg"]) &&
isset($post["user_contact_reg"])
) {
$echo["success1"] = 1;
$echo["success2"] = 1;
$echo["success3"] = 1;
} else {
$echo["success1"] = 2;
$echo["success2"] = 2;
$echo["success3"] = 2;
}
echo json_encode($echo);
?>
Ce programme est toujours pas complète. Je voulais d'abord m'assurer que le php obtenait tous les bons paramètres de la publication et renvoie ou echo
une bonne valeur. Cependant, dans ce code, je reçois cette erreur dans la console.
SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse (<anonymous>)
at fromJson (ionic.bundle.js:9892)
at defaultHttpResponseTransform (ionic.bundle.js:17406)
at ionic.bundle.js:17491
at forEach (ionic.bundle.js:9150)
at transformData (ionic.bundle.js:17490)
at transformResponse (ionic.bundle.js:18216)
at processQueue (ionic.bundle.js:22016)
at ionic.bundle.js:22032
at Scope.$eval (ionic.bundle.js:23228)
si <
est lu dans la sortie du json php, cela signifie qu'il y a une erreur sur la partie du code de php. Il m'est assez difficile de déboguer le code php puisque l'AngularJS analyse automatiquement les données du php. Par conséquent, je ne peux pas voir les détails de l'erreur. Et d'ailleurs je doute vraiment que ce simple script PHP aurait une erreur.
Merci d'avance.
Vérifiez simplement la réponse dans la console * Réseau * de votre navigateur. Pourquoi affichez-vous des données JSON en tant que 'application/x-www-form-urlencoded'? Si c'est pour garder la demande * simple *, je voudrais juste aller avec 'text/plain' – Phil
pas sûr de l'utilisation de' x-www-form-urlencoded' .. –
Vous devriez savoir pourquoi vous utilisez le code que vous écrire – Phil