views:

1343

answers:

3

Can anyone enlighten me as to why the following code won't work in IE7 but it works just fine in Chrome/Firefox?

$(document).ready(function(){
  $.ajax({
    type: "POST",
    dataType: "text",
    cache: false,
    url: "/ajax/ajax.asp",
    data: "cmd=check_forfeits",
    success: function(msg) {
      return false;
    }
  });
});

The javascript error IE throws out is 'Permission Denied'

If I remove that bit of code from the JS file for the page in question the page works just fine, no errors, so the error lies in that bit of code I believe.

:::UPDATE:::

Something else that is a little strange is that when I refresh the page (in IE7) I get no javascript errors and this code seems to work correctly. So it's as if the first time the page loads this code snippet errors but after that it runs just fine.

:::UPDATE:::

Here are the fiddler posts for this page from IE7:

#   Result   Protocol   Host                 URL
1   200      HTTP       192.168.47.13:8000   /
2   304      HTTP       192.168.47.13:8000   /js/jquery-1.4.1.js
3   200      HTTP       192.168.47.13:8000   /js/index.js
4   304      HTTP       192.168.47.13:8000   /js/jquery-1.4.1.js
5   200      HTTP       192.168.47.13:8000   /js/index.js
6   304      HTTP       192.168.47.13:8000   /css/main.css
7   304      HTTP       192.168.47.13:8000   /css/grid.css
8   304      HTTP       192.168.47.13:8000   /images/banner.jpg

Here are the fiddler posts for this page from Firefox:

#   Result   Protocol   Host                 URL
1   200      HTTP       192.168.47.13:8000   /
2   304      HTTP       192.168.47.13:8000   /js/jquery-1.4.1.js
3   304      HTTP       192.168.47.13:8000   /js/index.js
4   304      HTTP       192.168.47.13:8000   /css/grid.css
5   304      HTTP       192.168.47.13:8000   /css/main.css
6   304      HTTP       192.168.47.13:8000   /images/banner.jpg
7   200      HTTP       192.168.47.13:8000   /ajax/ajax.asp
A: 

newest edit

I found some talk about this here: http://zacster.blogspot.com/2008/10/jquery-ie7-load-url-problem.html and other places. It seems the problem has to do with the IE7 cache. If you make the URL unique that might fix the problem (eg add a timenow=09472345 to the end of the request string.)

initial response

Are you sure the name is .asp? I would expect to see .aspx or some other extension handled by .net If this is what you need then you probably have to enable .asp in IIs

then I read the question again

I see that it works in other browsers so it can't be my original comment... download fiddler and see how the request is different from IE and other browsers.

http://www.fiddler2.com/fiddler2/

Hogan
After comparing the posts made in both IE7 and Firefox the only difference is that Firefox has one additional post... the post to /ajax/ajax.asp... that post never gets made in IE7.. probably due to the 'Permission Denied' error.
Ryan
What are the prior posts? Also, do you have a DC -- it might be that IE is using windows authentication and the other isn't -- you have rights as non-windows user but your domain name does not have rights.
Hogan
I've edited my original post above to include the fiddler logs for the two browsers.
Ryan
@Ryan: see my newest edit, I believe I found a reference that solved your problem.
Hogan
@Hogan: if you look at the fiddler logs the post isn't even ever made to the ajax page in IE7 so I don't think changing the url would help in this instance.
Ryan
@Ryan: actually my reading of that page suggested this is the expected fiddler behavior. Because IE uses a local cached version it never checks the server, thus never shows up in fiddler.
Hogan
@Hogan: gave it a try and still no deal.
Ryan
+1  A: 

I ran into the same issue.

I did a work around to resolve the issue. I wrote the code to make the ajax call without using jQuery (created XMLHttpObject, onreadystatechange, etc). Then I used jQuery to parse the XML.

For some reason the jQuery's ajax doesn't work well with IE7.

You don't really get an error in IE7 but if you debug it then you'll see that the server is never hit and or code never reaches the success block.

L4ndo
A: 

Hi, I had an issue with the AJAX call in jQuery in IE7 as well. I found out what my issue was and not sure if its related to yours or not.

I was not putting the protocol in the URL and had extra slashes in IE 7 such this:

//www.mywebsite.com/products//json.php

which works everywhere else besides shIEt

Once I added the protocol and took away extra slashes it all worked fine.

Jason