首页 > 解决方案 > 了解为什么在 alamofire 中使用 respondJSON 时无法从 php 脚本返回 json

问题描述

我用 PHP 编写了以下脚本,以便在 MySQL 表中注册用户。

<?php

$host = "127.0.0.1";
$user = "root";
$password = "";
$database = "login_db";

$connessione = new mysqli($host,$user,$password,$database);

if ($connessione === false) {

    die("errore connessione db " .$connessione->connection_error);

}
    @$staff = $_POST['staff_ID'];
    @$password = $_POST['password'];
    @$email = $_POST['email'];
    @$cpt = $_POST['isCPT'];
    @$name = $_POST['Name'];


    echo $staff;

$sql = "INSERT INTO users(staff_ID, password , email, isCPT, Name) VALUES (?,?,?,?,?)";
if ($statment = $connessione->prepare($sql)){

    $statment -> bind_param("sssss",$staff,$password,$email,$cpt,$name); 
    $statment -> execute();
    $json_array = [
        "successSignUp"=>true
    ];
    header('Content-type:application/json;charset=utf-8');
    $json = json_encode($json_array);

     if ($json === false) {
        $json = json_encode(["jsonError" => json_last_error_msg()]);
        if ($json === false) {
            // This should not happen, but we go all the way now:
            $json = '{"jsonError":"unknown"}';
        }
        http_response_code(500);
     } else {
        echo $json;
     }
} else {
    echo "errore connessione";
}
$statment -> close();
$connessione -> close();

?>

使用xcode我想登录用户,但我不明白为什么我不能打印出我从服务器收到的json。

为了在下面的代码中进行测试,我尝试使用 Alamofire 和 swiftyjson 从服务器获取 JSON。

我做错了什么?是我的 php 文件还是我的 alamorequest 错误?

 
let parm : [String: Any] = ["staff_ID": staffID,"password":password, "email":email, "isCPT":isCpt, "Name": nameUser]
AF.request(self.linkServerDB, method: .post, parameters: parm).validate()
.responseJSON{ response in
 print(response)
 let json = JSON(response.result)
 print(json)
 }
 .responseData { dt in
    do {
   let json = try JSON(data: dt.data!)
   print(json)
   }catch {
   print("error")
  }
 }

标签: phpxcodeserveralamofireswifty-json

解决方案


推荐阅读