Angular başvurumda da aynı sorunla karşılaşıyordum. RocketChat REST API'yi uygulamamda kullanıyordum ve rooms.createDiscussionaşağıdaki gibi bir hata olarak kullanmaya çalışıyordum .
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":"
Değiştirmek gibi birkaç şeyi denedim responseType: 'text'ama hiçbiri işe yaramadı. Sonunda sorunun RocketChat kurulumumda olduğunu bulabildim. RocketChat değişiklik günlüğünde belirtildiği gibi , API rooms.createDiscussion1.0.0 sürümünde tanıtıldı maalesef daha düşük bir sürüm kullanıyordum.
Benim önerim, Angular kodunuzdaki hatayı düzeltmek için zaman harcamadan önce REST API'nin iyi çalışıp çalışmadığını kontrol etmektir. Bunu curlkontrol etmek için komut kullandım .
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"}'
Orada da yanıt olarak geçersiz bir HTML alıyordum.
<!DOCTYPE html>
<html>
<head>
<meta name="referrer" content="origin-when-crossorigin">
<script>/* eslint-disable */
'use strict';
(function() {
var debounce = function debounce(func, wait, immediate) {
Aşağıdaki gibi geçerli bir JSON yanıtı yerine.
{
"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
}
En son RocketChat'e güncelledikten sonra , bahsedilen REST API'yi kullanabildim.