Estaba enfrentando el mismo problema en mi aplicación Angular. Estaba usando la API REST de RocketChat en mi aplicación y estaba tratando de usar rooms.createDiscussion
, pero como un error como se muestra a continuación.
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":"
He intentado un par de cosas como cambiar el responseType: 'text'
pero ninguna funcionó. Al final, pude encontrar que el problema estaba en mi instalación de RocketChat. Como se menciona en el registro de cambios de RocketChat, la API rooms.createDiscussion
se introdujo en la versión 1.0.0, desafortunadamente, estaba usando una versión inferior.
Mi sugerencia es verificar que la API REST esté funcionando bien o no antes de dedicar tiempo a corregir el error en su código Angular. Usé el curl
comando para verificar eso.
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"}'
Allí también recibí un HTML no válido como respuesta.
<!DOCTYPE html>
<html>
<head>
<meta name="referrer" content="origin-when-crossorigin">
<script>/* eslint-disable */
'use strict';
(function() {
var debounce = function debounce(func, wait, immediate) {
En lugar de una respuesta JSON válida de la siguiente manera.
{
"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
}
Entonces, después de actualizar a la última versión de RocketChat , pude usar la API REST mencionada.