Changeset 12674

Show
Ignore:
Timestamp:
02/23/08 22:42:59 (3 months ago)
Author:
jburke
Message:

Fixes #5801. Send X-Requested-With: XMLHttpRequest header with dojo.xhr calls, to match behavior of other libraries.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • dojo/trunk/_base/xhr.js

    r12669 r12674  
    592592                var ioArgs = dfd.ioArgs; 
    593593                var args = ioArgs.args; 
    594                 ioArgs.xhr.open(type, ioArgs.url, args.sync !== true, args.user || undefined, args.password || undefined); 
     594                var xhr = ioArgs.xhr; 
     595                xhr.open(type, ioArgs.url, args.sync !== true, args.user || undefined, args.password || undefined); 
    595596                if(args.headers){ 
    596597                        for(var hdr in args.headers){ 
     
    598599                                        args.contentType = args.headers[hdr]; 
    599600                                }else{ 
    600                                         ioArgs.xhr.setRequestHeader(hdr, args.headers[hdr]); 
     601                                        xhr.setRequestHeader(hdr, args.headers[hdr]); 
    601602                                } 
    602603                        } 
    603604                } 
    604605                // FIXME: is this appropriate for all content types? 
    605                 ioArgs.xhr.setRequestHeader("Content-Type", args.contentType || _defaultContentType); 
     606                xhr.setRequestHeader("Content-Type", args.contentType || _defaultContentType); 
     607                if(!args.headers || !args.headers["X-Requested-With"]){ 
     608                        xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); 
     609                } 
    606610                // FIXME: set other headers here! 
    607611                try{ 
    608                         ioArgs.xhr.send(ioArgs.query); 
     612                        xhr.send(ioArgs.query); 
    609613                }catch(e){ 
    610614                        dfd.cancel(); 
    611615                } 
    612616                _d._ioWatch(dfd, _validCheck, _ioCheck, _resHandle); 
     617                xhr = null; 
    613618                return dfd; //Deferred 
    614619        }