首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Domo.js正在尝试JSON.parse一个png

Domo.js正在尝试JSON.parse一个png
EN

Stack Overflow用户
提问于 2022-04-25 16:43:37
回答 1查看 85关注 0票数 1

在为我的组织开发自定义应用程序时,我试图请求访问该卡的个人的姓名和化身。我能够在没有任何问题的情况下获得个人的名字,但是当请求化身图像时,我会得到以下控制台错误:

Uncaught (in promise) Error: Invalid JSON response at XMLHttpRequest.d.onload (domo.ts:309:18)

我已经查看了domo.js代码,在对某些事情做了一些有限的理解之后,我发现它试图对返回的.png进行JSON.parse

当检查选项卡时,我可以看到正确的图像被返回,但它不会被传递给应用程序。

下面是返回错误的函数:

代码语言:javascript
运行
复制
d.onload = function() {
                            var e;
                            if( u(d.status) ) {
                                !["csv","excel"].includes(r.format) && d.response || i(d.response), "blob" === r.responseType && i(new Blob([d.response], { type:d.getResponseHeader("content-type") }));
                                var t = d.response;
                                try{
                                    e = JSON.parse(t)
                                }
                                catch(e){
                                    return void c(Error("Invalid JSON response"))
                                }i(e)
                            }else c(Error(d.statusText))
                        }

据我所知,e指的是Domo环境,尽管我不能百分之百地肯定这一点。

注意:我现在转向堆栈溢出,因为我的组织仍然有开放的Domo支持票,已经超过2年了,没有回复,所以我不相信Domo会及时对这个问题做出回应。

更新:以下是称为-

代码语言:javascript
运行
复制
function i(e,t,r,n,a) {
                    return r = r || {}, new Promise((function(i,c) {
                        var d = new XMLHttpRequest;
                        if (n?d.open(e,t,n):d.open(e,t), p(d,t,r), function(e,t) {
                            t.contentType ? 
                            "multipart" !== t.contentType && e.setRequestHeader("Content-Type", t.contentType)
                            : e.setRequestHeader("Content-Type", o.DataFormats.JSON)
                        } (d,r), function(e) {
                            s && e.setRequestHeader("X-DOMO-Ryuu-Token", s)
                        } (d), function(e,t) {
                            void 0 !== t.responseType && (e.responseType = t.responseType)
                        } (d,r), 
                        d.onload = function() {
                            var e;
                            if( u(d.status) ) {
                                !["csv","excel"].includes(r.format) && d.response || i(d.response), "blob" === r.responseType && i(new Blob([d.response], { type:d.getResponseHeader("content-type") }));
                                var t = d.response;
                                try{
                                    e = JSON.parse(t)
                                }
                                catch(e){
                                    return void c(Error("Invalid JSON response"))
                                }i(e)
                            }else c(Error(d.statusText))
                        },
                        d.onerror = function() {
                            c(Error("Network Error"))
                        }, a) 
                        if (r.contentType && r.contentType !== o.DataFormats.JSON) d.send(a);
                        else {
                            var f = JSON.stringify(a);
                            d.send(f)
                        }
                        else d.send()
                    }))

下面是调用以获取图像的domo.js方法:

代码语言:javascript
运行
复制
e.get = function(e, t) {
                        return i(o.RequestMethods.GET, e, t)
                    },
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-14 20:44:39

@Skousini您可以通过直接将这个URL提供给<img>标记的src属性(显然用相关信息替换查询params )来获取用户的化身:

代码语言:javascript
运行
复制
<img src="/domo/avatars/v2/USER/846578099?size=300&defaultForeground=fff&defaultBackground=000&defaultText=D" />

本文档可在developer.domo.com:https://developer.domo.com/docs/dev-studio-references/user-api#User%20Avatar上查阅。

如果您想从端点中提取数据,则不必使用domo.js。您可以使用axios或任何其他HTTP工具。domo.js试图通过自动解析json来简化HTTP请求(因为大多数请求都是基于json的)。对于domo.get可以在本文档中提供的数据格式,还有其他几个选项:https://developer.domo.com/docs/dev-studio-tools/domo-js#domo.get

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72002965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档