gpt4 book ai didi

javascript - Jquery $.ajax 没有在 ASP.NET MVC 中发布数据字符串

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

我有一种情况,我正在构建 json 数据以动态发布。所以我在 for 循环中创建它,然后尝试使用 $.ajax 命令,但在服务器端模型为空。如果我像往常一样对数据部分进行硬编码,它就可以正常工作。我用一个简单的模型尝试了相同的过程,只是为了检查,结果发生了同样的情况。

所以这是可行的:

$.ajax({
url: '@Url.Action("SetupQuestions", "Login")',
type: 'POST',
dataType: 'json',
cache: false,
data: {SharedSecret: 'Bob'},
success: function (data, status, xhr) {
$('#divMFAQuestion').html(data).fadeIn('slow');
},
error: function (xhr, status, error) {
alert("MFA Challenge Error (b): " + error);
}
});

但这不是:

        var datastring = '{SharedSecret: Bob}';
$.ajax({
url: '@Url.Action("SetupQuestions", "Login")',
type: 'POST',
dataType: 'json',
cache: false,
processData: false,
data: JSON.stringify(datastring),
success: function (data, status, xhr) {
$('#divMFAQuestion').html(data).fadeIn('slow');
},
error: function (xhr, status, error) {
alert("MFA Challenge Error (b): " + error);
}
});

也不是这个:

 var datastring = 'SharedSecret: Bob';

有什么想法吗?

最佳答案

您的整个 JSON 数据结构都有引号:

var datastring = '{SharedSecret: Bob}';

JSON.stringify 需要一个 JSON 结构,所以引号应该只包含在字符串部分,这样 JSON.stringify 才能工作:

var datastring = {SharedSecret: 'Bob'};

但是,您的 AJAX 调用不起作用的原因是 data 参数接受 JSON 数据结构。 JSON.stringify 会将其序列化为一个字符串,而 data 不会。因此,您只需传递固定的 datastring 而无需 JSON.stringify

data: datastring

关于javascript - Jquery $.ajax 没有在 ASP.NET MVC 中发布数据字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33396679/

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