Nik
Nik

Reputation: 2484

Another IE Issue with AJAX

Alright, This code works in every browser except IE (again, to be expected). The code is supposed to refresh based on setInterval, and does so normally in all other browsers except IE, which just doesn't refresh. Can you spot the problem?

var nick = document.getElementById("chatnick").value;
var sessid = document.getElementById("sessid").value;
var room = document.getElementById("roomid").value;
function user_read() {
  $.ajax({
 type: "GET",
 url: "methods.php",
 data: {method: "u", room: room},
 dataType: "html",
 success: function (data, status, xhr) {
     $("#userwindow").html(data);
     setTimeout(user_read, 10000);
 }
});
}
function ajax_read() {
$.ajax({
 type: "GET",
 url: "methods.php",
 data: {method: "r", room: room},
 dataType: "html",
 success: function (data, status, xhr) {
     $("#chatwindow").html(data);
     setTimeout(ajax_read, 400);
 }
});
}
function submit_msg() {
var msg = document.getElementById("chatmsg").value;
$.ajax({
    type: "GET",
    url: "methods.php",
    data: {method: "w", room: room, m: msg, n: nick, sessid: sessid},
    dataType: "html",
    success: function (data, status, xhr) {
    }
});
document.getElementById("chatmsg").value = "";
}
function keyup(arg1) { 
if (arg1 == 13) submit_msg(); 
}
setTimeout(function(){ajax_read();}, 400);
user_read();

Upvotes: 3

Views: 183

Answers (2)

danp
danp

Reputation: 15241

Could be a caching issue, try using POST instead of GET. In fact, use post everywhere if you can as IE doesn't cache POST requests/responses.

Also, you clear the message sent before the ajax function has completed, seems fishy. Try rewriting like this:

function submit_msg() {
var msg = $("#chatmsg").val();
$.ajax({
    type: "POST",
    url: "methods.php",
    data: {method: "w", room: room, m: msg, n: nick, sessid: sessid},
    dataType: "html",
    success: function (data, status, xhr) {
        $("#chatmsg").val("");
    }
});

}

Upvotes: 4

Corv1nus
Corv1nus

Reputation: 4625

Caching is a problem I've run across in IE using AJAX. Have you tried appending something to URLs to make them unique? For instance, a random integer as a param.

Upvotes: 1

Related Questions