register()
に渡されたすべての引数が値を持つことは確かです。これはjs
コードです。SyntaxError:予期せぬトークン<JSON.parse(<anonymous>)の位置0のJSONで - 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);
});
}
これは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);
?>
このプログラムはまだ完全ではないです。私はまず、PHPが投稿からすべての適切なパラメータを取得しているか、またはecho
が正しい値を返していることを確認したかったのです。しかし、これらのコードでは、コンソールでこのエラーが発生します。
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)
<
はPHPのJSON出力で読み出される場合、それは、PHPコードの一部にエラーが発生したことを意味します。 AngularJSが自動的にPHPからデータを解析するので、PHPコードをデバッグするのはかなり難しいです。したがって、私はエラーの詳細を見ることができません。また、私はこの単純なPHPスクリプトにはエラーがあることを本当に疑っています。
ありがとうございます。
ブラウザの* Network *コンソールで応答を確認してください。 JSONデータを 'application/x-www-form-urlencoded'としてPOSTするのはなぜですか?要求を*シンプルに保つためには、 'text/plain'と一緒に行ってみましょう。 – Phil
' x-www-form-urlencoded'の使い方が不明です。 –
あなたは書き込み – Phil