gpt4 book ai didi

javascript - 尝试升级 jQuery 版本时 AJAX 帖子显示错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:27 25 4
gpt4 key购买 nike

我有很多具有不同名称和值的单选元素。当我点击 radio 时,它会使用 AJAX 方法发送到服务器。

AJAX 方法:

$("input[type=radio]").click(function() {
$.ajax({
url: "http://localhost/myproject/ajax_url",
type: "POST",
data: $("#my-form").serialize(),
dataType: JSON,
success: function(){}
});
});

以前我使用的是 jQuery 版本 2.2.4,它工作正常,但是当我尝试用 jQuery 版本 3.1.1 更改它时,它显示错误:

Uncaught TypeError: (o.dataType || "*").toLowerCase is not a function

我确信我在服务器上输入的内容没有错(因为我从不更改我的服务器代码),这个错误只是在我尝试升级我的 jQuery 版本时显示的。您的解决方案可能对我有很大帮助:)

最佳答案

问题出在JSON MDN

The JSON object contains methods for parsing JavaScript Object Notation (JSON) and converting values to JSON. It can't be called or constructed, and aside from its two method properties it has no interesting functionality of its own.

jQuery 2.x.x

它 trim dataType,然后返回字符串类型[Object JSON],这是很好的--string。 jQuery.trim 挽救了局面。

// Extract dataTypes list
s.dataTypes = jQuery.trim(s.dataType || "*").toLowerCase().match(rnotwhite) || [""];
// ------------------^^^^

jQuery 3.x.x

他们删除了 $.trim 并且由于您传递了已定义的 JSON(否则,OR 运算符 || 将传递字符串 *

// Extract dataTypes list
s.dataTypes = (s.dataType || "*").toLowerCase().match(rnothtmlwhite) || [""];

修复

用引号将 JSON 括起来,这样您就可以使用字符串而不是对象。 dataType 接受字符串。

$.ajax({
url: "http://localhost/myproject/ajax_url",
type: "POST",
data: $("#my-form").serialize(),
dataType: 'json', // lowercase is always preferered though jQuery does it, too.
success: function(){}
});

关于javascript - 尝试升级 jQuery 版本时 AJAX 帖子显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40734625/

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