当前位置: 首页 > 面试题库 >

ASP.NET:jQuery AJAX'数据'参数问题

欧阳向文
2023-03-14
问题内容

我在过去的3个小时中一直在四处寻找并找到答案的这段代码遇到了问题。由于不成功,我将发布代码并询问我在Web服务上应具有哪种参数来处理此请求:

var args = [{ key: 'myId', value: 'myValue' }, { key: 'myOtherId', value: 'myOtherValue'}];
var dataToSend = { name: 'fooId', value: 'fooValue', args: args };
$.ajax({
type: 'POST',
url: 'fooURL',
data: dataToSend,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: OnSuccess,
error: OnError
});

现在,我应该能够获得“ dataToSend”的哪种签名?

我试过了:

[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Foo(string name, object value, List<Args> args)
{
    return "OK";
}

public class Args
{
    public string key { get; set; }
    public object value { get; set; }
}

[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Foo(string name, object value, object[] args)
{
    return "OK";
}

并且

[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Foo(dataToSend dataToSend)
{
    return "OK";
}

public class dataToSend
{
    public string name { get; set; }
    public object value { get; set; }
    public List<Args> args = new List<Args>();

}
public class Args
{
    public string key { get; set; }
    public object value { get; set; }
}

问题答案:

尝试将数据作为字符串而不是对象传递,即:

$ .ajax({
    ...
    数据:“ {a:2,b:3}”,
    ...
});

这样做的原因是,如果您将一个对象指定为数据,那么jQuery将使用查询字符串格式对数据进行序列化,而服务器将直接使用JSON格式。

尽管告诉jQuery使用JSON作为数据类型,但仍会发生这种情况-它似乎仅与结果有关,而与发送到服务器的请求有效负载无关。

你在那里的其他一切对我来说都是正确的。



 类似资料:
  • 15.7 参数和数据处理的常见问题 Spring JDBC框架提供了多个方法来处理常见的参数和数据问题 15.7.1 为参数设置SQL的类型信息 通常Sping通过传入的参数类型决定SQL的参数类型。可以在设定参数值的时候显式提供SQL类型。有些场景下设置NULL值是有必要的。 你可以通过以下方式来设置SQL类型信息: 许多JdbcTemplate的更新和查询方法需要传入额外的int数组类型的参数

  • 问题内容: 我是jQuery的新手,目前正在尝试实现ajax调用,该调用将永久轮询服务器并请求一些数据。Ajax运行正常,因为我可以使用服务器端控制器方法,但是添加 数据后:gameLink 参数已停止工作。这是我的jQuery函数: $ gameLink出现在jsp上,因为我正在使用以下几行 将$ gameLink添加为请求参数的正确语法是什么,或者我做错了什么? 问题答案: 你有这样尝试过吗?

  • CodeIgniter 内置了一个快速强大的数据库抽象类,支持传统的查询架构以及查询构造器模式。 数据库方法的语法简单明了。

  • 我想发送我的(在AngularJS控制器中)设置参数如下: 但是我不确定这是否是正确的方法,在Node.js中写什么:

  • 我正在尝试使用ADODB.Command对象执行更新SQL查询。我以前从来没有用过它,所以我可能会犯一些愚蠢的错误,她是我代码的副本: 上的错误触发器显示。不是用于字符串值的正确类型吗? 编辑:在尝试@h2so4的方法(将参数值连接到命令字符串中)后,我得到了另一个错误: 。 不知道它是什么意思,但它在我的执行线上触发:

  • 问题内容: 我正在使用此查询进行分页 如果sortDirection为“”,我将获得一个例外。如果您这样使用它,它可以正常工作,但我想对其进行参数化查询。解决办法是什么? 我得到的例外是:’@ sortDirection’附近的语法不正确。 问题答案: 您无法参数化诸如表名,列,排序依据等内容。它们 是 查询。您将需要将期望值列入白名单(以避免SQL注入)并将其直接连接到查询中(这是您的用法)。