【发布时间】:2015-10-21 16:30:37
【问题描述】:
我正在尝试创建一个回调函数来响应 Node 中的 JSONP 请求。
我以字符串形式接收 callbackName,并且我有一个对象(比如说 var obj = {a : "b"}) 我需要返回以下内容:
callbackName({a : "b"});
我尝试连接字符串 - 但我得到了
"callbackName([Object object])";
我试过 JSON.Stringify 但得到了:
"callbackName({\"a\":\"b"});"
这很接近 - 但它都是粘稠的。有没有办法得到我想要的?
更新
我正在使用的代码 - 在 AWS Lambda 函数中(事实证明这是相当重要的!)
context.succeed(request.callback + "(" + JSON.stringify(obj) + ");");
如下所述 - Lambda 期望一个对象成功,它调用 JSON.Stringify。
关于如何继续进行的任何想法?
【问题讨论】:
-
我怀疑 JSON.Stringify 的结果正是您想要的,但您正在查看某处将其表示为 JS 字符串文字而不是纯文本的值。你没有向我们展示你正在使用的代码,所以很难说到底是哪里出了问题。
-
这是 2015 年。我们现在有 CORS。 JSONP应该被允许枯萎和死亡。
-
可以取出数据对象并将其通过回调中的变量传递,但就像@Quentin 所说,您必须向我们展示您的代码。
-
JSONP 响应应该被浏览器解析并执行。显示您的请求代码。
-
认为我找到了问题 - 响应在 AWS Lambda 函数中 - 我相信它将响应重新包装在另一个 JSON.Stringify 中。所以我需要一个真正的函数调用才能对其进行字符串化???现在情况变得复杂了。另外 - 如果大公司的智障者停止使用 IE9,我会停止使用 JSONP
标签: javascript json node.js aws-lambda