Stavo affrontando lo stesso problema nella mia applicazione Angular. Stavo usando l'API REST di RocketChat nella mia applicazione e stavo cercando di utilizzare il rooms.createDiscussion
, ma come errore come di seguito.
ERROR Error: Uncaught (in promise): HttpErrorResponse: {"headers":{"normalizedNames":{},"lazyUpdate":null},"status":200,"statusText":"OK","url":"myurl/rocketchat/api/v1/rooms.createDiscussion","ok":false,"name":"HttpErrorResponse","message":"Http failure during parsing for myrul/rocketchat/api/v1/rooms.createDiscussion","error":{"error":{},"text":"
Ho provato un paio di cose come cambiare il responseType: 'text'
ma nessuna di queste ha funzionato. Alla fine sono stato in grado di scoprire che il problema era con la mia installazione di RocketChat. Come menzionato nel registro delle modifiche di RocketChat, l'APIrooms.createDiscussion
è stata introdotta nella versione 1.0.0, purtroppo stavo usando una versione inferiore.
Il mio suggerimento è di controllare che l'API REST funzioni correttamente o meno prima di dedicare tempo alla correzione dell'errore nel codice Angular. Ho usato il curl
comando per verificarlo.
curl -H "X-Auth-Token: token" -H "X-User-Id: userid" -H "Content-Type: application/json" myurl/rocketchat/api/v1/rooms.createDiscussion -d '{ "prid": "GENERAL", "t_name": "Discussion Name"}'
Anche lì ricevevo un HTML non valido come risposta.
<!DOCTYPE html>
<html>
<head>
<meta name="referrer" content="origin-when-crossorigin">
<script>/* eslint-disable */
'use strict';
(function() {
var debounce = function debounce(func, wait, immediate) {
Invece di una risposta JSON valida come segue.
{
"discussion": {
"rid": "cgk88DHLHexwMaFWh",
"name": "WJNEAM7W45wRYitHo",
"fname": "Discussion Name",
"t": "p",
"msgs": 0,
"usersCount": 0,
"u": {
"_id": "rocketchat.internal.admin.test",
"username": "rocketchat.internal.admin.test"
},
"topic": "general",
"prid": "GENERAL",
"ts": "2019-04-03T01:35:32.271Z",
"ro": false,
"sysMes": true,
"default": false,
"_updatedAt": "2019-04-03T01:35:32.280Z",
"_id": "cgk88DHLHexwMaFWh"
},
"success": true
}
Quindi, dopo l' aggiornamento all'ultima RocketChat, sono stato in grado di utilizzare l'API REST menzionata.