imb*_*ila 4 javascript ajax jquery
我有很多无线电元素,它们具有不同的名称和值。当我单击收音机时,它将通过AJAX方法发送到服务器。
AJAX方法:
$("input[type=radio]").click(function() {
$.ajax({
url: "http://localhost/myproject/ajax_url",
type: "POST",
data: $("#my-form").serialize(),
dataType: JSON,
success: function(){}
});
});
Run Code Online (Sandbox Code Playgroud)
以前,我使用的是jQuery 2.2.4版,它可以正常工作,但是当我尝试使用jQuery 3.1.1版对其进行更改时,它显示了一个错误:
未捕获的TypeError:(o.dataType ||“ *”)。toLowerCase不是函数
我确定我在服务器上键入的内容没有错(因为我从未更改过服务器代码),该错误仅在尝试升级jQuery版本时显示。您的解决方案可能对我有很大帮助:)
问题在于JSONMDN
JSON对象包含用于解析JavaScript对象表示法(JSON)并将值转换为JSON的方法。它不能被调用或构造,除了它的两个方法属性之外,它本身没有有趣的功能。
它修剪dataType,然后返回[Object JSON]优良的字符串类型--string。jQuery.trim节省了一天。
// Extract dataTypes list
s.dataTypes = jQuery.trim(s.dataType || "*").toLowerCase().match(rnotwhite) || [""];
// ------------------^^^^
Run Code Online (Sandbox Code Playgroud)
它们已删除,$.trim并且由于您传递JSON了已定义的内容(否则,OR运算符||将传递string *。
// Extract dataTypes list
s.dataTypes = (s.dataType || "*").toLowerCase().match(rnothtmlwhite) || [""];
Run Code Online (Sandbox Code Playgroud)
括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(){}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3602 次 |
| 最近记录: |