Wenn ich meine Daten zu meiner Datenbank drücken, bekomme ich ein Problem mit meinem JSON zurück:Syntaxerror - Syntaxerror: unerwartetes Token <in JSON an Position 1 - Ionic
1
<br/>[email protected]{"userData": {"user_id":"21","name":"eman","email":"[email protected]","username":"username_name","token":"6de6b72ad590562b566675f6f780cb26cf67dc46e73cf025ad5ef7da92735b45"}}
Scheint mich zurück html und nicht JSON Daten, die folgende Fehlermeldung:
SyntaxError: Unexpected token < in JSON at position 1
at JSON.parse (<anonymous>)
at Response.Body.json (http://localhost:8106/build/vendor.js:71523:25)
at SafeSubscriber._next (http://localhost:8106/build/main.js:757:29)
at SafeSubscriber.__tryOrUnsub (http://localhost:8106/build/vendor.js:38232:16)
at SafeSubscriber.next (http://localhost:8106/build/vendor.js:38179:22)
at Subscriber._next (http://localhost:8106/build/vendor.js:38119:26)
at Subscriber.next (http://localhost:8106/build/vendor.js:38083:18)
at XMLHttpRequest.onLoad (http://localhost:8106/build/vendor.js:72016:38)
at t.invokeTask (http://localhost:8106/build/polyfills.js:3:15660)
at Object.onInvokeTask (http://localhost:8106/build/vendor.js:4974:33)
Hier ist meine API-Code:
postData(credentials, type){
return new Promise((resolve, reject) =>{
let headers = new Headers();
this.http.post(apiUrl+type, JSON.stringify(credentials), {headers: headers}).
subscribe(res =>{
resolve(res.json());
}, (err) =>{
reject(err);
});
ich den ganzen Tag verbracht zu finden versuchen, eine Lösung, überprüfen Sie jeden Beitrag auf SO aber immer noch keine Lösung finden. Es könnte ein Duplikat sein, aber ehrlich gesagt habe ich die Antwort nicht auf anderen Posts gesehen.
--edit-- WebAPI
<?php
require 'config.php';
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$app->post('/login','login'); /* User login */
$app->post('/signup','signup'); /* User Signup */
$app->get('/getFeed','getFeed'); /* User Feeds */
$app->post('/feed','feed'); /* User Feeds */
$app->post('/feedUpdate','feedUpdate'); /* User Feeds */
$app->post('/feedDelete','feedDelete'); /* User Feeds */
$app->post('/getImages', 'getImages');
$app->run();
/************************* USER LOGIN *************************************/
/* ### User login ### */
function login() {
$request = \Slim\Slim::getInstance()->request();
$data = json_decode($request->getBody());
try {
$db = getDB();
$userData ='';
$sql = "SELECT user_id, name, email, username FROM users WHERE (username=:username or email=:username) and password=:password ";
$stmt = $db->prepare($sql);
$stmt->bindParam("username", $data->username, PDO::PARAM_STR);
$password=hash('sha256',$data->password);
$stmt->bindParam("password", $password, PDO::PARAM_STR);
$stmt->execute();
$mainCount=$stmt->rowCount();
$userData = $stmt->fetch(PDO::FETCH_OBJ);
if(!empty($userData))
{
$user_id=$userData->user_id;
$userData->token = apiToken($user_id);
}
$db = null;
if($userData){
$userData = json_encode($userData);
echo '{"userData": ' .$userData . '}';
} else {
echo '{"error":{"text":"Bad request wrong username and password"}}';
}
}
catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
/* ### User registration ### */
function signup() {
$request = \Slim\Slim::getInstance()->request();
$data = json_decode($request->getBody());
$email=$data->email;
$name=$data->name;
$username=$data->username;
$password=$data->password;
try {
$username_check = preg_match('~^[A-Za-z0-9_]{3,20}$~i', $username);
$email_check = preg_match('~^[a-zA-Z0-9._-][email protected][a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$~i', $email);
$password_check = preg_match('~^[[email protected]#$%^&*()_]{6,20}$~i', $password);
echo $email_check.'<br/>'.$email;
if (strlen(trim($username))>0 && strlen(trim($password))>0 && strlen(trim($email))>0 && $email_check>0 && $username_check>0 && $password_check>0)
{
echo 'here';
$db = getDB();
$userData = '';
$sql = "SELECT user_id FROM users WHERE username=:username or email=:email";
$stmt = $db->prepare($sql);
$stmt->bindParam("username", $username,PDO::PARAM_STR);
$stmt->bindParam("email", $email,PDO::PARAM_STR);
$stmt->execute();
$mainCount=$stmt->rowCount();
$created=time();
if($mainCount==0)
{
/*Inserting user values*/
$sql1="INSERT INTO users(username,password,email,name)VALUES(:username,:password,:email,:name)";
$stmt1 = $db->prepare($sql1);
$stmt1->bindParam("username", $username,PDO::PARAM_STR);
$password=hash('sha256',$data->password);
$stmt1->bindParam("password", $password,PDO::PARAM_STR);
$stmt1->bindParam("email", $email,PDO::PARAM_STR);
$stmt1->bindParam("name", $name,PDO::PARAM_STR);
$stmt1->execute();
$userData=internalUserDetails($email);
}
$db = null;
if($userData){
$userData = json_encode($userData);
echo '{"userData": ' .$userData . '}';
} else {
echo '{"error":{"text":"Enter valid data"}}';
}
}
else{
echo '{"error":{"text":"Enter valid data"}}';
}
}
catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
function email() {
$request = \Slim\Slim::getInstance()->request();
$data = json_decode($request->getBody());
$email=$data->email;
try {
$email_check = preg_match('~^[a-zA-Z0-9._-][email protected][a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$~i', $email);
if (strlen(trim($email))>0 && $email_check>0)
{
$db = getDB();
$userData = '';
$sql = "SELECT user_id FROM emailUsers WHERE email=:email";
$stmt = $db->prepare($sql);
$stmt->bindParam("email", $email,PDO::PARAM_STR);
$stmt->execute();
$mainCount=$stmt->rowCount();
$created=time();
if($mainCount==0)
{
/*Inserting user values*/
$sql1="INSERT INTO emailUsers(email)VALUES(:email)";
$stmt1 = $db->prepare($sql1);
$stmt1->bindParam("email", $email,PDO::PARAM_STR);
$stmt1->execute();
}
$userData=internalEmailDetails($email);
$db = null;
if($userData){
$userData = json_encode($userData);
echo '{"userData": ' .$userData . '}';
} else {
echo '{"error":{"text":"Enter valid dataaaa"}}';
}
}
else{
echo '{"error":{"text":"Enter valid data"}}';
}
}
catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
/* ### internal Username Details ### */
function internalUserDetails($input) {
try {
$db = getDB();
$sql = "SELECT user_id, name, email, username FROM users WHERE username=:input or email=:input";
$stmt = $db->prepare($sql);
$stmt->bindParam("input", $input,PDO::PARAM_STR);
$stmt->execute();
$usernameDetails = $stmt->fetch(PDO::FETCH_OBJ);
$usernameDetails->token = apiToken($usernameDetails->user_id);
$db = null;
return $usernameDetails;
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
function getFeed(){
try {
if(1){
$feedData = '';
$db = getDB();
$sql = "SELECT * FROM feed ORDER BY feed_id DESC LIMIT 15";
$stmt = $db->prepare($sql);
$stmt->bindParam("user_id", $user_id, PDO::PARAM_INT);
$stmt->bindParam("lastCreated", $lastCreated, PDO::PARAM_STR);
$stmt->execute();
$feedData = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
if($feedData)
echo '{"feedData": ' . json_encode($feedData) . '}';
else
echo '{"feedData": ""}';
} else{
echo '{"error":{"text":"No access"}}';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
function feed(){
$request = \Slim\Slim::getInstance()->request();
$data = json_decode($request->getBody());
$user_id=$data->user_id;
$token=$data->token;
$lastCreated = $data->lastCreated;
$systemToken=apiToken($user_id);
try {
if($systemToken == $token){
$feedData = '';
$db = getDB();
if($lastCreated){
$sql = "SELECT * FROM feed WHERE user_id_fk=:user_id AND created < :lastCreated ORDER BY feed_id DESC LIMIT 5";
$stmt = $db->prepare($sql);
$stmt->bindParam("user_id", $user_id, PDO::PARAM_INT);
$stmt->bindParam("lastCreated", $lastCreated, PDO::PARAM_STR);
}
else{
$sql = "SELECT * FROM feed WHERE user_id_fk=:user_id ORDER BY feed_id DESC LIMIT 5";
$stmt = $db->prepare($sql);
$stmt->bindParam("user_id", $user_id, PDO::PARAM_INT);
}
$stmt->execute();
$feedData = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
if($feedData)
echo '{"feedData": ' . json_encode($feedData) . '}';
else
echo '{"feedData": ""}';
} else{
echo '{"error":{"text":"No access"}}';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
function feedUpdate(){
$request = \Slim\Slim::getInstance()->request();
$data = json_decode($request->getBody());
$user_id=$data->user_id;
$token=$data->token;
$feed=$data->feed;
$systemToken=apiToken($user_id);
try {
if($systemToken == $token){
$feedData = '';
$db = getDB();
$sql = "INSERT INTO feed (feed, created, user_id_fk) VALUES (:feed,:created,:user_id)";
$stmt = $db->prepare($sql);
$stmt->bindParam("feed", $feed, PDO::PARAM_STR);
$stmt->bindParam("user_id", $user_id, PDO::PARAM_INT);
$created = time();
$stmt->bindParam("created", $created, PDO::PARAM_INT);
$stmt->execute();
$sql1 = "SELECT * FROM feed WHERE user_id_fk=:user_id ORDER BY feed_id DESC LIMIT 1";
$stmt1 = $db->prepare($sql1);
$stmt1->bindParam("user_id", $user_id, PDO::PARAM_INT);
$stmt1->execute();
$feedData = $stmt1->fetch(PDO::FETCH_OBJ);
$db = null;
echo '{"feedData": ' . json_encode($feedData) . '}';
} else{
echo '{"error":{"text":"No access"}}';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
function feedDelete(){
$request = \Slim\Slim::getInstance()->request();
$data = json_decode($request->getBody());
$user_id=$data->user_id;
$token=$data->token;
$feed_id=$data->feed_id;
$systemToken=apiToken($user_id);
try {
if($systemToken == $token){
$feedData = '';
$db = getDB();
$sql = "Delete FROM feed WHERE user_id_fk=:user_id AND feed_id=:feed_id";
$stmt = $db->prepare($sql);
$stmt->bindParam("user_id", $user_id, PDO::PARAM_INT);
$stmt->bindParam("feed_id", $feed_id, PDO::PARAM_INT);
$stmt->execute();
$db = null;
echo '{"success":{"text":"Feed deleted"}}';
} else{
echo '{"error":{"text":"No access"}}';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
$app->post('/userImage','userImage'); /* User Details */
function userImage(){
$request = \Slim\Slim::getInstance()->request();
$data = json_decode($request->getBody());
$user_id=$data->user_id;
$token=$data->token;
$imageB64=$data->imageB64;
$systemToken=apiToken($user_id);
try {
if(1){
$db = getDB();
$sql = "INSERT INTO imagesData(b64,user_id_fk) VALUES(:b64,:user_id)";
$stmt = $db->prepare($sql);
$stmt->bindParam("user_id", $user_id, PDO::PARAM_INT);
$stmt->bindParam("b64", $imageB64, PDO::PARAM_STR);
$stmt->execute();
$db = null;
echo '{"success":{"status":"uploaded"}}';
} else{
echo '{"error":{"text":"No access"}}';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
$app->post('/getImages', 'getImages');
function getImages(){
$request = \Slim\Slim::getInstance()->request();
$data = json_decode($request->getBody());
$user_id=$data->user_id;
$token=$data->token;
$systemToken=apiToken($user_id);
try {
if(1){
$db = getDB();
$sql = "SELECT b64 FROM imagesData";
$stmt = $db->prepare($sql);
$stmt->execute();
$imageData = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo '{"imageData": ' . json_encode($imageData) . '}';
} else{
echo '{"error":{"text":"No access"}}';
}
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
?>
warum diese => '
@ mail.comhere' Mail in ressponse bekommen, überprüft Wetter Ihrer api Antwort Prüfung ist es gültig json zurückkehrt? – Onkar
@Onkar das ist die Antwort, die ich von Json bekomme. Ich weiß nicht, warum ich diese
Mail vor meinem JSON bekomme. Es geht gut in meine Datenbank – ChinaXiaoHong
diese Antwort erstellt Fehler beim Auflösen von Json 'resolve (res.json());', seine Ursache für Fehler – Onkar