gpt4 book ai didi

javascript - 如何在不使用 sails.io 客户端帮助程序方法的情况下向 sails.js Controller 发出请求

转载 作者:行者123 更新时间:2023-12-02 17:40:55 24 4
gpt4 key购买 nike

我正在开发一个使用 sails 的应用程序,我必须从外部源进行连接。它们可以是 IOS 或 Android 移动应用程序,也可以只是外部 html 客户端。

在这方面,我无法使用 sails 辅助方法来使 Controller 操作处理 Web 套接字请求。

当我阅读 sails.io 客户端文件时,我想我可以使用它。

socket.emit('get' , {url:'/tomato' , data:{message:'pony'}} , function(response){});

模仿 sails socket.get() 函数,但它不起作用。

sails 登录终端显示以下消息:未返回 session 数据,并且首次保存 session 数据时遇到错误:未定义。

最佳答案

抱歉,你不得不放弃!这是通过套接字与第三方进行通信时出现的一个相当常见的问题。它实际上与 Sails 辅助函数无关,并且您使用 socket.emit 来复制 socket.get 功能是完全有效的。不幸的是,这种情况的错误消息在 Sails v9 中(显然)被破坏了,但要点是:在连接套接字之前,您需要从第 3 方域获取 cookie。这意味着向该域发出 JSONP 请求。 Socket.io 实际上可以为您做到这一点,尽管您可能必须在调用 io.connect 之前手动设置 io.util.ua.hasCORS = false 。或者您可以在远程服务器上创建一个 JSONP 端点并自己点击它。无论哪种方式,一旦您安装了第三方 cookie,套接字握手就应该可以正常工作,并允许您的站点和 Sails 服务器之间进行完美的通信。

编辑

事实证明,io.util.ua.hasCORS 方法无效 - 它将导致向远程服务器发出 JSONP 请求,但响应不会有附加了 cookie,因此它无法完成工作。但是,当 Sails 的下一版本发布时,它将包含一种从外部域请求 cookie 的机制,并将在 sails.io.js 的后台自动处理连接。另请注意,您需要在 Sails 应用程序的 /config/sockets.js 文件中将 authorization 设置为 false,以允许套接字从远程域连接。

关于javascript - 如何在不使用 sails.io 客户端帮助程序方法的情况下向 sails.js Controller 发出请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22228804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com