Javascript Ajax成功地将数据发送到IE,但未在Firefox中发送
您好,我有以下数据正在通过ajax传输到MVC控制器。当它在IE上运行时,它工作得非常好,但当它在firefox上运行时,它会收到一个错误。我尝试过改变很多东西(添加数据类型、内容类型等等)。大多数情况下,数据也不会通过IE发送Javascript Ajax成功地将数据发送到IE,但未在Firefox中发送,javascript,jquery,ajax,model-view-controller,Javascript,Jquery,Ajax,Model View Controller,您好,我有以下数据正在通过ajax传输到MVC控制器。当它在IE上运行时,它工作得非常好,但当它在firefox上运行时,它会收到一个错误。我尝试过改变很多东西(添加数据类型、内容类型等等)。大多数情况下,数据也不会通过IE发送 function sendData() { var currData = new Array(); var elements = document.getElementById("formID").elements; for (var i = 0
function sendData() {
var currData = new Array();
var elements = document.getElementById("formID").elements;
for (var i = 0, element; element = elements[i++];) {
if (element.value != "Submit Query") {
if (element.value != "") {
currData.push(element.value);
}
}
}
var finData = {values: currData};
$.ajax({
type: "POST",
url: "home/sendcurr",
data: finData,
traditional: true,
success: function (recData) {
populateObjData(recData);
},
error: function () {
alert("error");
}
});
}
在控制器中,我接收以下数据:
List<String> values
同样,现在这个功能在IE中非常有效,但在Firefox中却不行!
非常感谢您的帮助 使用IE11+Chrome50 annd FF46测试代码后,如果使用或不使用,我会得到以下结果 使用替代方法,结果如下:
Chrome: --> "["firstName=1","lastName=2"]"
FF --> "["firstName=1", "lastName=2"]"
IE: --> "[firstName=1,lastName=2]"
对于if问题,我写了一篇关于错误的评论
因此,我建议您减少代码行数,编写如下内容:
函数sendData(){
var finData=$('#formID').serialize();
$.ajax({
类型:“POST”,
网址:“z.html”,
数据:finData,
成功:函数(recData){
//populateObjData(recData);
警惕(“成功”);
},
错误:函数(){
警报(“错误”);
}
});
}
$(函数(){
$('input[type=“submit”]”)。在('click',函数(e){
e、 预防默认值();
sendData();
});
});代码>
什么是traditional:true
在这里做什么?你在firefox中遇到了什么错误?@PraveenKumar这是我发现的唯一一种方法,当控制器在IE中接收到数据时可以读取数据,否则它只会给我“null”而不是数组中的值列表。@Baraa我猜这就是导致FF失败的原因。做一件事。创建两个单独的AJAX函数,一个用于IE,另一个用于其他。在IE中使用traditional:true
,对于其他人来说,不要包括这一点。看看这是否有效?@PraveenKumar将尝试使用itthanks进行深入分析,这有助于了解更多信息!
traditional: true:
Chrome --> "["values=1","values=2","values=Submit%20Query"]"
FF --> "["values=1","values=2","values=Submit%20Query"]"
IE --> "[values=1,values=2,values=Submit%20Query]"
traditional: false:
Chrome --> "["values%5B%5D=1","values%5B%5D=2","values%5B%5D=Submit%20Query"]"
FF --> "["values%5B%5D=1", "values%5B%5D=2", "values%5B%5D=Submit%20Query"]"
IE --> "[values%5B%5D=1,values%5B%5D=2,values%5B%5D=Submit%20Query]"
Chrome: --> "["firstName=1","lastName=2"]"
FF --> "["firstName=1", "lastName=2"]"
IE: --> "[firstName=1,lastName=2]"