У меня есть следующий вызов Ajax, который отлично работает в Firefox и Chrome, но не IE:
function getAJAXdates(startDate, numberOfNights, opts) {
var month = startDate.getMonth() + 1;
var day = startDate.getDate();
var year = startDate.getFullYear();
var d = new Date();
var randNum = Math.floor(Math.random()*100000000);
$.ajax({
type : "GET",
dataType : "json",
url : "/availability/ajax/bookings?rand="+randNum,
cache : false,
data : 'month='+month+'&day='+day+'&year='+year+'&nights='+numberOfNights,
contentType : 'application/json; charset=utf8',
success : function(data) {
console.log('@data: '+data);
insertCellData(data, opts, startDate);
},
error:function(xhr, status, errorThrown) {
console.log('@Error: '+errorThrown);
console.log('@Status: '+status);
console.log('@Status Text: '+xhr.statusText);
}
});
}
Я знаю, за то, что все переменные передают правильное содержимое, а $ .ajax действительно передает все значения paramater /.
Это то, что я получаю об ошибке:
LOG: @error не определен LOG: @Status: parsererror LOG: @Status Текст: OK
Я в курсе вопроса о кэше IE и реализовал случайный параметр, чтобы очистить его.
Вот JSON я получить обратно (я в состоянии видеть его с помощью Charles)
{
"availability":[
{
"inventory_id":"5",
"booking_id":"21",
"start_date":"05-01-2010",
"number_nights":4,
"text":"deFrancisco, Martin - $500.00 ACTIVE",
"type":"BOOKING"
}
]
}
Наконец эти заголовки, которые посылаются обратно из внутреннего интерфейса:
header('Content-Type: application/json; charset=utf8');
header("Cache-Control: no-cache");
header("Expires: 0");
header('Access-Control-Max-Age: 3628800');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
Любые идеи?
Я добавил contentType, чтобы узнать, разрешает ли он проблему, но она не работает даже без нее. спасибо – Sam3k