我可以发回函数引用作为对 api 请求的响应吗?

Posted

技术标签:

【中文标题】我可以发回函数引用作为对 api 请求的响应吗?【英文标题】:Can I send back a function reference as a response to an api request? 【发布时间】:2019-11-10 02:31:54 【问题描述】:

我可以发回一个函数引用或函数,例如对来自 express 服务器的 api 调用的响应,并且前端框架是 angular js?

我尝试发送响应对象,例如:per: true, listEvnts: events 其中events 是一个函数,但在我的客户端我只得到一个对象 一键:per: true。缺少第二个键。

所需的输出将是包含两个键的响应对象,例如:per: true, listEvents: events

【问题讨论】:

【参考方案1】:

不,您不能通过 HTTP 发送函数。函数特定于它们所属的程序。您不能通过网络发送它。您甚至不能将函数序列化为 JSON,因为 JSON 没有指定“函数”类型。

您必须将函数的源代码作为字符串发送,然后将eval 该源代码发送到客户端上的实际函数中,但这是个坏主意。您不一定了解客户端,并且不保证您发送的任何代码在该客户端上的特定上下文中都可以执行。

发送数据,而不是代码。

【讨论】:

【参考方案2】:

不,这是不可能的。如果你想从客户端调用函数到服务器,你可以创建 RPC 类型的结构。请在此处提供您的具体要求的详细信息,以便更好地帮助您。

per: true, listEvnts: events 是简单的 json 字符串,缺少 "events" 可能有其他原因,更详细地了解您的需求和当前对象将有助于理解查询。

【讨论】:

以上是关于我可以发回函数引用作为对 api 请求的响应吗?的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS 通过请求函数加入承诺

HTTP 中的多重响应合法吗?

一个restful api可以返回一个页面作为响应吗?

set-cookie 不与 http 请求标头一起发回

Passport.js 身份验证失败时发回 JSON 响应

IE8上的错误代码12019/12007 ajax请求