gpt4 book ai didi

javascript - 如何在WebMethod中接收非原始数据?

转载 作者:行者123 更新时间:2023-11-28 04:29:41 24 4
gpt4 key购买 nike

我正在尝试通过 JavaScript 将字节数组传递给我的 WebMethod。问题是我的 WebMethod 返回消息“测试表单仅适用于作为参数的原始方法。”

当我将数据类型更改为字符串或任何其他类型的原始变量时,WebMethod 会继续接受它。

我正在使用 MessagePack 将一个对象转换为 byte[],名为 msgpackEnvio(转换本身发生得很好),然后发送到 WebService。

这是我使用 jquery 对 WebService 的请求

$.ajax({
beforeSend: function (request) {
request.setRequestHeader("Content-Type", "application/json");
},
processData: false,
dataType: "json",
url: url,
data: msgpackEnvio,
type: "POST",
error: function (data) {
$('#upload-load').hide();
$('.bt-enviar-excel').removeAttr('disabled', 'disabled');
var msg = document.getElementsByClassName('msg')[0];
msg.style.color = 'red';
msg.innerHTML = 'Erro interno servidor!';
},
success: //some code

事实上,上面的代码根本不重要,我的问题是在webService中,以及如何让它接收一个数组或者可能是一个对象。

这是我的 WebMethod,它应该能够接收 byte[]

 [WebMethod]
public string TestMessagePack(byte[] name)
{
//my code

return "Finish";
}

最佳答案

您可以使用 Base64 编码和解码将字节数组作为字符串发送。除此之外,您可能想使用 post 请求和 JSON 序列化/反序列化。不会有一个通用的单一尺寸适合复杂的 C# 对象和 javascript 对象之间的所有转换,这就是为什么只允许使用原始参数,因此对于非原始事物,您将需要一个转换层。这通常意味着某种形式的字符串序列化和反序列化。

关于javascript - 如何在WebMethod中接收非原始数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44726893/

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