jQuery AJAX problem in IE7 (possibly other versions as well)

有些话、适合烂在心里 提交于 2019-11-29 07:17:14

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.

Jason

if people happen to find this page because they're experiencing the same error - I just found another cause / solution for IE7 failing with this "PERMISSION DENIED" error and succeeding on a refresh.

Make sure that if you're using this in your <head> tag:

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

Note that it does not have any capital letters or a space after the ";". Our site had this version:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

and that caused the same behavior when making AJAX calls.

Hopefully this helps someone else, because we just spent about 6 hours figuring this out.

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/

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.

Aiping He

Something inappropriate could be in your page, the reason why I encountered this issue is that I use the document.write("<style></style") when I use the JqueryTool API at the same page.

Les

there's a line in jquery 1.9.1 which isnt used afterwards but which throws an exception: line 2582, column 4 in jquery-1.9.1.js

this happens only for IE7 and not IE8 or above, and stops it loading the rest of the jquery stuff. using IE7 compatibility mode in IE9 i found the line of code throwing the exception then commented it out in jquery1.9.1 as follows:

// IE6/7 do not support getting/setting some attributes with get/setAttribute
if ( !getSetAttribute ) {

    // Use this for any attribute in IE6/7
    // This fixes almost every IE6/7 issue
    nodeHook = jQuery.valHooks.button = {
        get: function( elem, name ) {
            var ret = elem.getAttributeNode( name );
            return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ?
                ret.value :
                undefined;
        },
        set: function( elem, value, name ) {
            // Set the existing or create a new attribute node
            var ret = elem.getAttributeNode( name );
            if ( !ret ) {
                elem.setAttributeNode(
                    (ret = elem.ownerDocument.createAttribute( name ))
                );
            }

            //LB - 19/04/2013 - removed for IE7 compatibility.
            //ret.value = value += "";

            // Break association with cloned elements by also using setAttribute (#9646)
            return name === "value" || value === elem.getAttribute( name ) ?
                value :
                undefined;
        }
    };
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!