Side navigation
#8166 closed bug (wontfix)
Opened February 03, 2011 05:16PM UTC
Closed February 04, 2011 12:39AM UTC
Last modified March 13, 2012 05:29PM UTC
$.getScript: sameDomain file:// requests fails in Chromium when using XHR
| Reported by: | ast@mugami.com | Owned by: | jaubourg |
|---|---|---|---|
| Priority: | low | Milestone: | 1.5.1 |
| Component: | ajax | Version: | 1.5 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
When doing same-domain file:// XHR Chromium spits out an
XMLHttpRequest cannot load file://[...].js. Origin null is not allowed by Access-Control-Allow-Origin.
The following patch is pullable from: git://git.asbjorn.biz/jquery.git getscript-fix
ajax: script: Threat sameDomain file:// requests as crossDomain Due to file:// XHR security measures in Chromium, dynamic loading of scripts need to use the script tag injection hack. Tested in Chromium 6.0.472.63, Firefox 3.6.7 and Konqueror 4.4.5 Signed-off-by: Asbjørn Sloth Tønnesen <ast@mugami.com>
diff --git a/src/ajax/script.js b/src/ajax/script.js
index 34ddd04..c80696c 100644
--- a/src/ajax/script.js
+++ b/src/ajax/script.js
@@ -30,8 +30,11 @@ jQuery.ajaxPrefilter( "script", function( s ) {
// Bind script tag hack transport
jQuery.ajaxTransport( "script", function(s) {
- // This transport only deals with cross domain requests
- if ( s.crossDomain ) {
+ // This transport primarily deals with cross domain requests
+ // but also sameDomain request within file:// due to
+ // http://code.google.com/p/chromium/issues/detail?id=4197 + 47416
+ var local = location.protocol === 'file:'
+ if ( s.crossDomain || local ) {
var script,
head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
Related issues in Chromiums issue tracker:
Attachments (0)
Change History (8)
Changed February 03, 2011 05:37PM UTC by comment:1
| component: | unfiled → ajax |
|---|---|
| priority: | undecided → high |
| resolution: | → duplicate |
| status: | new → closed |
Changed February 03, 2011 06:04PM UTC by comment:3
| milestone: | 1.next → 1.5.1 |
|---|---|
| version: | git → 1.5 |
Changed February 03, 2011 07:33PM UTC by comment:4
This is not a duplicate of #8125, that was fixed in git two days ago, my bug report was against git, not 1.5.
Testcases based on current git HEAD and HEAD+fix: http://asbjorn.it/pub/bugreports/jquery/6166-testcase.tar.bz2 to be run from local file:// context.
BTW: The patch had a minor error which has been fixed in git://git.asbjorn.biz/jquery.git getscript-fix
Changed February 03, 2011 11:38PM UTC by comment:5
| resolution: | duplicate |
|---|---|
| status: | closed → reopened |
Changed February 03, 2011 11:39PM UTC by comment:6
| owner: | → jaubourg |
|---|---|
| status: | reopened → assigned |
Changed February 04, 2011 12:39AM UTC by comment:7
| _comment0: | If you wanna make sure every script requests are considered cross-domain, add the following prefilter: \ {{{ \ jQuery.ajaxPrefilter( "script", function( s ) { \ s.crossDomain = true; \ } ); \ }}} → 1296780502412086 |
|---|---|
| priority: | high → low |
| resolution: | → wontfix |
| status: | assigned → closed |
If you wanna make sure every script requests are considered cross-domain, add the following prefilter:
jQuery.ajaxPrefilter( "script", function( s ) {
s.crossDomain = true;
} );