jQuery-Can't让ajax请求在IE中工作,没有给出有用的错误消息
jQuery - Can't get ajax request to work in IE, no useful error messages given
我在InternetExplorer中执行一个简单的.getJSON请求时遇到问题(下面代码的两种变体都适用于所有其他浏览器)。特别是下面的部分——我能够在代码的其他部分成功地执行.getJSON请求,但由于某种原因,下面的部分拒绝合作。
var dateFormatted = moment(date, "DD/MM/YYYY");
var get_dates_url = window.location.href + "/available_dates?start="+dateFormatted._d+"&end="+dateFormatted._d+"&_="+(new Date().getTime());
console.log(get_dates_url);
$.getJSON(get_dates_url, function(result) {
console.log(result);
$("#appendList").html("Select a timeslot you'd like to schedule");
var available_times = JSON.stringify(availableTimes(result));
var service_length = $("#serviceMinutes").text();
var get_times_url = window.location.href + "/available_times?available_times="+available_times+"&service_length="+service_length+"&_="+Math.random();
console.log(get_times_url);
$.ajax({
url: get_times_url,
cache: false,
crossDomain: true,
dataType: "JSON",
method: 'GET',
success: function(data){
console.log(data);
$.each(data, function() {
var parseTime = moment.parseZone(this.time);
var availableTime = parseTime.format('hh:mm a');
$("#appendList").append("<li class='timeslot' data-time='" + this.time + "' data-formatted_time='" + availableTime + "'>" + availableTime + " <button class='scheduler-button green-btn'>Select</button></li>");
});
selectDateButton();
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
});
生成的console.log(get_dates_url);看起来像这样:
"http://localhost:3000/professionals/29/available_dates?start=2015-11-05T00:00.000Z&end=2015-11-05T00:00.000Z&_=1446741826656"
根据其他建议,我已经尝试通过添加JSON.stringfy(new Date().getTime())来防止任何类型的缓存问题;在我的URL末尾。
我还添加了jQuery.support.cors=true;以防出现跨源问题。
我还将原始.getJSON代码修改为ajax请求,如下所示:
$.ajax({
url: get_dates_url,
cache: false,
crossDomain: true,
dataType: "json",
success: function(result) {
console.log(result);
var available_times = JSON.stringify(availableTimes(result));
var service_length = $("#serviceMinutes").text();
var get_times_url = window.location.href + "/available_times?available_times="+available_times+"&service_length="+service_length+"&_="+Math.random();
console.log(get_times_url);
$.ajax({
url: get_times_url,
cache: false,
crossDomain: true,
dataType: "JSON",
method: 'GET',
success: function(data){
console.log(data);
$.each(data, function() {
var parseTime = moment.parseZone(this.time);
var availableTime = parseTime.format('hh:mm a');
$("#appendList").append("<li class='timeslot' data-time='" + this.time + "' data-formatted_time='" + availableTime + "'>" + availableTime + " <button class='scheduler-button green-btn'>Select</button></li>");
});
selectDateButton();
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
},
error: function (request, status, error) { alert(status + ", " + error); }
});
我从IE中得到的只是一条错误消息,上面写着"错误",控制台中没有可见的错误。有什么想法可以引起这个问题吗?
编辑:
我也尝试过在我的URL末尾添加"&callback=?"。
哇,我希望这能帮助任何遇到同样问题的人,但事实证明IE特别不喜欢我通过这种方式传递数据来构建URL的方式。相反,通过ajax数据属性传递数据:
var dataToSend = { 'start' : dateFormatted._d, 'end' : dateFormatted._d };
$.ajax({
url: window.location.href + "/available_dates",
cache: false,
data: dataToSend,
dataType: "json",
success: function(result) {
console.log(result)
}
});
我还添加了$.support.cors=true;到我的javascript文件。
我不完全确定是哪一个纠正了我的问题。
相关文章:
- Ajax聊天消息重复而不仅仅是更新
- 如果localstorage为空,则显示欢迎消息
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- 离开页面时弹出消息
- 门户网站:当地时间有多有用
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 消息显示之外的淘汰验证
- 选项卡侦听器未被来自后台脚本的消息激活
- jQuery在输入下验证post错误消息
- Scipt未在选定选项卡中执行以发送和接收消息
- 检查xmlhttprequest问题的消息
- AngularJs对ng消息的自定义替换
- ng消息仅在触摸时显示错误,并在错误的初始显示上转换
- 当用户按下回车键时,自动在text区域/text中插入消息
- 如果消息框答案为YES,则用Javascript填写表单
- 在javaservlet doPost方法中启动线程时,无法返回异常消息
- 解析云代码错误:解析.错误{代码:141,消息:“未调用成功/错误”}
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- 在AngularJs中隐藏默认错误消息
- jQuery-Can't让ajax请求在IE中工作,没有给出有用的错误消息