io.socket.request()
使用 Socket.IO 向 Sails 服务器发送虚拟请求。
此函数与 io.socket.get()
、io.socket.post()
等非常相似,但它提供了对请求标头、参数、方法和 URL 的更低级别的访问。
使用自动创建的 io.socket
实例
io.socket.request(options, function (resData, jwres)){
// ...
// jwres.headers
// jwres.statusCode
// jwres.body === resData
// ...
});
选项 | 类型 | 详情 |
---|---|---|
method | HTTP 请求方法;例如 'GET' 。 |
|
url | 目标 URL 路径;例如 "/checkout"。 | |
data | 可选。如果提供,此请求数据将被 JSON 编码并作为虚拟 HTTP 主体包含。 | |
headers | 可选。如果提供,此字符串标头字典将作为虚拟请求标头发送。 |
参数 | 类型 | 详情 | |
---|---|---|---|
1 | resData |
从 Sails 服务器响应中接收到的数据 (=== jwres.body ,也等效于 HTTP 响应主体)。 |
|
2 | jwres |
JSON WebSocket 响应对象。具有 headers 、body 和 statusCode 。 |
io.socket.request({
method: 'get',
url: '/user/3/friends',
data: {
limit: 15
},
headers: {
'x-csrf-token': 'ji4brixbiub3'
}
}, function (resData, jwres) {
if (jwres.error) {
console.log(jwres.statusCode); // => e.g. 403
return;
}
console.log(jwres.statusCode); // => e.g. 200
});
- 一个有用的类比可能是将
io.socket.get
与此方法之间的区别视为 JQuery 的$.get
与$.ajax
之间的区别。- 请记住,您可以使用套接字请求与所有路由进行通信。
- 需要为所有传出请求设置自定义标头?查看
io.sails.headers
.
req
)