@@ -719,6 +719,7 @@ export default class GMApi {
719
719
statusCode : 0 ,
720
720
responseHeader : "" ,
721
721
} ;
722
+ let finalUrl = "" ;
722
723
// 等待response
723
724
this . gmXhrHeadersReceived . addListener (
724
725
"headersReceived:" + requestId ,
@@ -727,6 +728,7 @@ export default class GMApi {
727
728
resultParam . responseHeader += header . name + ": " + header . value + "\n" ;
728
729
} ) ;
729
730
resultParam . statusCode = details . statusCode ;
731
+ finalUrl = this . cache . get ( "gmXhrRequest:finalUrl:" + requestId ) ;
730
732
this . gmXhrHeadersReceived . removeAllListeners ( "headersReceived:" + requestId ) ;
731
733
}
732
734
) ;
@@ -740,6 +742,10 @@ export default class GMApi {
740
742
// 发送到content
741
743
// 替换msg.data.responseHeaders
742
744
msg . data . responseHeaders = resultParam . responseHeader || msg . data . responseHeaders ;
745
+ // 替换finalUrl
746
+ if ( finalUrl ) {
747
+ msg . data . finalUrl = finalUrl ;
748
+ }
743
749
sender . getConnect ( ) . sendMessage ( msg ) ;
744
750
} ) ;
745
751
sender . getConnect ( ) . onDisconnect ( ( ) => {
@@ -1149,6 +1155,8 @@ export default class GMApi {
1149
1155
rule . action . requestHeaders = rule . action . requestHeaders ?. filter (
1150
1156
( header ) => header . header . toLowerCase ( ) !== "cookie"
1151
1157
) ;
1158
+ // 设置重定向url,获取到实际的请求地址
1159
+ this . cache . set ( "gmXhrRequest:finalUrl:" + requestId , location ) ;
1152
1160
chrome . declarativeNetRequest . updateSessionRules ( {
1153
1161
removeRuleIds : [ parseInt ( requestId ) ] ,
1154
1162
addRules : [ rule ] ,
@@ -1159,6 +1167,7 @@ export default class GMApi {
1159
1167
// 删除关联与DNR
1160
1168
this . cache . delete ( "gmXhrRequest:" + details . requestId ) ;
1161
1169
this . cache . delete ( "dnrRule:" + requestId ) ;
1170
+ this . cache . delete ( "gmXhrRequest:finalUrl:" + requestId ) ;
1162
1171
chrome . declarativeNetRequest . updateSessionRules ( {
1163
1172
removeRuleIds : [ parseInt ( requestId ) ] ,
1164
1173
} ) ;
0 commit comments