Swift 3 / Alamofire говорит о неудаче, но это сработало

Мой запрос alamofire возвращается как сбой, когда я печатаю ответ в xcode, однако, веб-сервис фактически выполняет это, и все должно происходить так, как должно, кроме факта его возвращения как сбой

Alamofire.request(BASE_URL + "index.php/feed/like", method: .post, parameters: parameters, headers: headers).responseJSON { response in

let result = response.result

debugPrint(response)

print(result)

if (result.value != nil) {

let json = JSON(result.value!)

print(json)

if json["status"] == false {

showError(type: "generic")

} else {

let nolikes = Int(self.lblLikes.text!)! + 1

self.lblLikes.text = String(nolikes)

self.actionLike.image = UIImage(named: "ActionLiked")

}

}

}

это моя ошибка

[Result]: FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 1." UserInfo={NSDebugDescription=Invalid value around character 1.}))
[Timeline]: Timeline: { "Request Start Time": 509902187.696, "Initial Response Time": 509902188.176, "Request Completed Time": 509902188.177, "Serialization Completed Time": 509902188.177, "Latency": 0.480 secs, "Request Duration": 0.480 secs, "Serialization Duration": 0.000 secs, "Total Duration": 0.481 secs }

и это моя функция PHP в Codeigniter

function like_post()
{

$post = $this->_post_args;

$post = $this->security->xss_clean($post);

$like = $this->Feed_model->likePost($post);

if($like == TRUE) {

$this->set_response([
'status' => TRUE,
'message' => 'SUCCESS'
], REST_Controller::HTTP_ACCEPTED);

} else {

$this->set_response([
'status' => FALSE,
'error' => 'ALREADY_LIKED'
], REST_Controller::HTTP_BAD_REQUEST);

}

}

public function likePost($post)
{

$postid = $post['post_id'];
$userid = $post['user_id'];

$query = $this->db->query("SELECT * FROM `post_likes` WHERE `user_id` = '{$userid}' AND `post_id` = '{$postid}'");

if($query->num_rows() > 0) {

return false;

} else {

$insert = [
'user_id' => $userid,
'post_id' => $postid
];

$this->db->insert('post_likes', $insert);

$currpost = $this->db->query("SELECT * FROM `posts` WHERE `post_id` = '{$postid}'");
$likes = $currpost->likes;

$update = ['likes' => $likes + 1];

$this->db->update('posts', $update, "post_id = '{$postid}'");

return true;

}

}

код вернет false, если пользователь уже выполнил это действие, поэтому, если я сначала нажму на это действие, оно вернется как сбой в консоли, но скрипт php запустится, вставив все в базу данных и т. д. Однако, если я щелкну по нему снова, я получит ответ об ошибке php (таким образом, запрос будет показан как успешный, но не выполнен)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector