Fixed an issue with JSON data in packed scripts. (Bug #1298)
[jquery.git] / src / ajax / ajax.js
index 9042a48..4fb63c0 100644 (file)
@@ -132,12 +132,6 @@ jQuery.fn.extend({
 
 });
 
-// If IE is used, create a wrapper for the XMLHttpRequest object
-if ( !window.XMLHttpRequest )
-       XMLHttpRequest = function(){
-               return new ActiveXObject("Microsoft.XMLHTTP");
-       };
-
 // Attach a bunch of functions for handling common AJAX events
 
 /**
@@ -414,9 +408,6 @@ jQuery.extend({
                });
        },
 
-       // timeout (ms)
-       //timeout: 0,
-
        /**
         * Set the timeout in milliseconds of all AJAX requests to a specific amount of time.
         * This will make all future AJAX requests timeout after a specified amount
@@ -624,8 +615,9 @@ jQuery.extend({
 
                var requestDone = false;
 
-               // Create the request object
-               var xml = new XMLHttpRequest();
+               // Create the request object; Microsoft failed to properly
+               // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
+               var xml = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
 
                // Open the socket
                xml.open(s.type, s.url, s.async);
@@ -642,10 +634,6 @@ jQuery.extend({
                // Set header so the called script knows that it's an XMLHttpRequest
                xml.setRequestHeader("X-Requested-With", "XMLHttpRequest");
 
-               // Make sure the browser sends the right content length
-               if ( xml.overrideMimeType )
-                       xml.setRequestHeader("Connection", "close");
-                       
                // Allow custom headers/mimetypes
                if( s.beforeSend )
                        s.beforeSend(xml);
@@ -797,7 +785,7 @@ jQuery.extend({
 
                // Get the JavaScript object, if JSON is used.
                if ( type == "json" )
-                       eval( "data = " + data );
+                       data = eval("(" + data + ")");
 
                // evaluate scripts within html
                if ( type == "html" )