我正在创建 FiveM 脚本,我需要获取源 CitizenId,但我的客户端回调函数从服务器事件接收的内容有问题。服务器事件返回一个字符串,我知道它是事实,因为我尝试打印变量并且它在控制台中的类型是正确的。但当它转到返回它的函数时,它就不再是字符串,而是一个“对象”。
为了最小化复制,
这是在单击按钮时调用我的客户端回调的 JS 脚本(工作): html/script.js
const createOrg = () =>{
var orgName = document.getElementById("neworg-name-input").value;
fetch(`https://${GetParentResourceName()}/orgcreateCb`, {
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=UTF-8',
},
body: JSON.stringify({
organizationName: orgName,
})
}).then(resp => resp.json()).then(resp => console.log(resp));
//console.log(orgName);
};
这是返回字符串(Working)的服务器事件: 服务器/main.lua
RegisterServerEvent('getPlayerCitizenId')
AddEventHandler('getPlayerCitizenId', function(cb)
local currentCitizenId = QBCore.Functions.GetPlayer(source).PlayerData.citizenid
cb(tostring(currentCitizenId))
end)
这是需要服务器事件返回的客户端回调(不起作用): 客户端/main.lua
RegisterNUICallback("orgcreateCb", function(data, cb)
TriggerServerEvent('getPlayerCitizenId', function(citizenId)
print('Citizen ID:', citizenId)
end)
end)
在打印中我得到 ->“脚本错误:错误对象不是字符串”
您可以使用
QBCore.Functions.GetPlayerData().citizenid
客户端来获取玩家的citizenid