gpt4 book ai didi

javascript - JQuery ajax 不适用于特定输入字符串参数 "
转载 作者:行者123 更新时间:2023-12-03 01:37:21 24 4
gpt4 key购买 nike

我正在使用字符串输入参数进行 JQuery ajax 调用,如下所示。但只要输入参数值为“<?”,ajax调用就会失败,甚至没有触及服务层的 Controller 方法。

但是对于所有输入值(例如“<”、“?”、“<*”等),这都可以正常工作。仅对于此输入“<?”,这会造成破坏。

在 Controller 服务方法中,如果我将输入参数值硬编码为“<? ”,这将为我提供预期的结果。仅当我从 JQuery ajax 传递此值时,才会出现这种情况。

$.ajax({
url: '/Profile/ValidateAccountName',
type: 'GET',
dataType: 'json',
async: false,
data: {
accountName: $('#account-name').val()
},
cache: false,
success: function (result) {
if (!result) {
isValid = false;
errMsg = "Account name has invalid characters";
}
},
error: function (xhr, textStatus, errorThrown) {
console.error("Service call failed during ValidateAccountName() execution. ")
}
});

请让我知道我在这里缺少什么。

最佳答案

?是一个特殊字符,是开始新 URL 参数的标记。您需要使用encodeURIComponent方法来发送如下特殊字符,

$.ajax({
url: '/Profile/ValidateAccountName',
type: 'GET',
dataType: 'json',
async: false,
data: {
accountName: encodeURIComponent($('#account-name').val())
},
cache: false,
success: function (result) {
if (!result) {
isValid = false;
errMsg = "Account name has invalid characters";
}
},
error: function (xhr, textStatus, errorThrown) {
console.error("Service call failed during ValidateAccountName() execution. ")
}
});

关于javascript - JQuery ajax 不适用于特定输入字符串参数 "<?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51006965/

24 4 0

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