当前位置: 首页 > 知识库问答 >
问题:

返回未定义响应的JS https请求

赵锐
2023-03-14

我正在尝试从JavaScript应用程序向另一个应用程序中的endpoint进行API调用。

当我调用endpoint时,我得到了状态代码和消息,但我无法以任何方式访问响应体。我已经尝试了不同的方法来获取数据,但似乎没有一种方法对我有效。

在方法“someAction”中,我想使用来自API调用的响应/结果中的数据。我在代码中添加了单个日志行打印的输出。

如何在定义“result.status/message”时未定义“result”?

为了将数据/正文作为JSON或字符串获取,我必须做什么?

API本身进行测试,并在Postman中测试时返回数据。

谢谢你的帮助!

const request   = require('request')

let callEndpoint = () => {
    return new Promise((resolve, reject) => {

        const url = `https://my.api.com/endpoint`

        const requestOptions = {
            url: url,
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
                'My-API-Authorization': '123456789'
            },
            json: true,
            strictSSL: false
        }

        request.get(requestOptions, (err, response) => {
            if(err)
            {
                return reject(err);
            }
            return resolve(response);
        });
    });
}

let someAction = () => {
    callEndpoint()
        .then(result => {
            logger.logInfo(result.statusCode)           // => 200
            logger.logInfo(result.statusMessage)        // => OK
            logger.logInfo(result)                      // => undefined
            logger.logInfo(result.toString())           // => [object Object]
            logger.logInfo(result.body)                 // => undefined
            logger.logInfo(result.data)                 // => undefined

            JSON.parse(result.toString())               // => Unexpected token o in JSON at position 1    
            JSON.parse(result)                          // => Unexpected token o in JSON at position 1

            // DO SOME STUFF WITH THE RESULT
        })
}

共有1个答案

娄飞鸾
2023-03-14

而不是使用请求,使用axios

axios的链接

如果Axios不能工作,那么检查API的

 类似资料:
  • 问题内容: 当我警告jsonServerResponse函数返回的值时,尽管从process.php页面返回了JSON,但其值未定义。 我知道问题是异步请求完成之前发出的警报功能,但是我不确定如何解决此问题。任何建议都非常感激:) 问题答案: 好的,我是从其他帖子中弄清楚的。结果可以在成功回调中处理,也可以添加本身是回调函数的参数并将ajax请求的结果应用于回调。 还有gdoron,您所询问的那一

  • 问题内容: 我正在使用Node的模块发出 HTTP 请求,但是在上,返回的块似乎并不满足完整的请求响应。这是我的代码: 有没有办法在结束请求之前等待完整的输出?难道我做错了什么?谢谢! 问题答案: 您还应该收听“结束”事件

  • 有很多使用OkHTTP3发出请求的例子,但是,我仍然无法发出正确的请求。据我所知,我的设置是正确的。 我不断收到如下所示的回复。我不知道他们是什么意思。 {“ContentLength”:238,“ContentTypeString”:“Application/JSON”,“Source”:{“Buffer”:{“Size”:0},“Closed”:False,“Source”:{“BytesRe

  • 我正在尝试为discord bot执行命令,它从MySQL表中输出整数。 我尝试使用async/await、Promissions和回调来实现这一点,但结果总是一样的。在这里,我用promise再次尝试,因为在过去它不知何故起了作用。现在不会了。 下面是返回promise的函数: 下面的代码将结果赋值给Access Level变量: Catch函数捕获表示“TypeError:无法读取未定义的属性

  • 问题内容: 因此,当我打开灯箱时,我试图禁止在页面上滚动,而我发现这个确实有用的脚本非常有用。不幸的是,当我在自己的页面上使用它时,它也禁止在灯箱中滚动。我开始用警报调试代码,只是发现该事件。wheelDelta在我的页面上返回“undefined”,而在JSFiddle中,它返回-120。 问题答案: jQuery事件处理程序中的对象不能反映真实事件。是IE和Opera的非标准事件属性,可通过j

  • 所以我想打印响应的结果,然后使用gson为模型生成数据,但响应永远不会得到返回,因为调用了onResponse。! 如果你注意到Logcat,日志。我的回答没有显示。。!?但是在使用该请求的活动的onSuccess中,它通常会显示日志,但是如果日志包含响应对象,它不会显示哪个非常奇怪,也没有任何意义。。!? Logcat公司 我尝试使用具有相同url和参数的PostMan测试请求,它通常返回jso