@@ -23,7 +23,6 @@ var _Raven = window.Raven,
23
23
maxMessageLength : 100 ,
24
24
extra : { }
25
25
} ,
26
- authQueryString ,
27
26
isRavenInstalled = false ,
28
27
objectPrototype = Object . prototype ,
29
28
// capture references to window.console *and* all its methods first
@@ -114,8 +113,6 @@ var Raven = {
114
113
115
114
TraceKit . collectWindowErrors = ! ! globalOptions . collectWindowErrors ;
116
115
117
- setAuthQueryString ( ) ;
118
-
119
116
// return for chaining
120
117
return Raven ;
121
118
} ,
@@ -508,15 +505,6 @@ function each(obj, callback) {
508
505
}
509
506
}
510
507
511
-
512
- function setAuthQueryString ( ) {
513
- authQueryString =
514
- '?sentry_version=4' +
515
- '&sentry_client=raven-js/' + Raven . VERSION +
516
- '&sentry_key=' + globalKey ;
517
- }
518
-
519
-
520
508
function handleStackInfo ( stackInfo , options ) {
521
509
var frames = [ ] ;
522
510
@@ -748,35 +736,46 @@ function send(data) {
748
736
// Set lastEventId after we know the error should actually be sent
749
737
lastEventId = data . event_id || ( data . event_id = uuid4 ( ) ) ;
750
738
751
- makeRequest ( data ) ;
752
- }
739
+ logDebug ( 'debug' , 'Raven about to send:' , data ) ;
753
740
741
+ if ( ! isSetup ( ) ) return ;
754
742
755
- function makeRequest ( data ) {
756
- var img ,
757
- src ;
743
+ makeRequest ( {
744
+ url : globalServer ,
745
+ auth : {
746
+ sentry_version : '4' ,
747
+ sentry_client : 'raven-js/' + Raven . VERSION ,
748
+ sentry_key : globalKey
749
+ } ,
750
+ data : data ,
751
+ options : globalOptions ,
752
+ onSuccess : function success ( ) {
753
+ triggerEvent ( 'success' , {
754
+ data : data ,
755
+ src : globalServer
756
+ } ) ;
757
+ } ,
758
+ onError : function failure ( ) {
759
+ triggerEvent ( 'failure' , {
760
+ data : data ,
761
+ src : globalServer
762
+ } ) ;
763
+ }
764
+ } ) ;
765
+ }
758
766
759
- logDebug ( 'debug' , 'Raven about to send:' , data ) ;
767
+ function makeRequest ( opts ) {
768
+ // Tack on sentry_data to auth options, which get urlencoded
769
+ opts . auth . sentry_data = JSON . stringify ( opts . data ) ;
760
770
761
- if ( ! isSetup ( ) ) return ;
771
+ var img = newImage ( ) ,
772
+ src = opts . url + '?' + urlencode ( opts . auth ) ;
762
773
763
- img = newImage ( ) ;
764
- src = globalServer + authQueryString + '&sentry_data=' + encodeURIComponent ( JSON . stringify ( data ) ) ;
765
- if ( globalOptions . crossOrigin || globalOptions . crossOrigin === '' ) {
766
- img . crossOrigin = globalOptions . crossOrigin ;
774
+ if ( opts . options . crossOrigin || opts . options . crossOrigin === '' ) {
775
+ img . crossOrigin = opts . options . crossOrigin ;
767
776
}
768
- img . onload = function success ( ) {
769
- triggerEvent ( 'success' , {
770
- data : data ,
771
- src : src
772
- } ) ;
773
- } ;
774
- img . onerror = img . onabort = function failure ( ) {
775
- triggerEvent ( 'failure' , {
776
- data : data ,
777
- src : src
778
- } ) ;
779
- } ;
777
+ img . onload = opts . onSuccess ;
778
+ img . onerror = img . onabort = opts . onError ;
780
779
img . src = src ;
781
780
}
782
781
@@ -870,4 +869,13 @@ function afterLoad() {
870
869
Raven . config ( RavenConfig . dsn , RavenConfig . config ) . install ( ) ;
871
870
}
872
871
}
872
+
873
+ function urlencode ( o ) {
874
+ var pairs = [ ] ;
875
+ each ( o , function ( key , value ) {
876
+ pairs . push ( encodeURIComponent ( key ) + '=' + encodeURIComponent ( value ) ) ;
877
+ } ) ;
878
+ return pairs . join ( '&' ) ;
879
+ }
880
+
873
881
afterLoad ( ) ;
0 commit comments