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
之間的差異。- 請記住,您可以使用 socket 請求與任何路由進行通訊。
- 需要為所有傳出的請求設定自訂標頭嗎?請查看
io.sails.headers
。