附加脚本 SRC 导致跨源请求错误
Appending Script SRC Causes Cross Origin Requests Error
基本上我有一个需要动态加载内容的站点 - 特别是语言环境。我的网站需要 multi-lingual 支持,所以一般的想法是我有一个像 ?language=english 这样的查询参数,然后英语将附加到 header 以便它获取正确的数据在我的网页中使用。所以喜欢:
//script 1
//getLanguage() gets the specified query parameter, like 'english'
$('head').append('<script src=' + getLanguage() + '.js'></script>');
然后在整个脚本 1 中我会这样做:
$('#mainHeader').append(window.i18n['home'].mainHead());
这是定义变量的脚本的英文版:
//english.js
(function(A) {
A.i18n = {
home: {
mainHead: function(b) { return 'test123'; },
}
}
})(this);
这在 运行 在本地网络服务器上有效。 运行 它作为一个文件(这是我需要做的)我得到这个:
"XMLHttpRequest cannot load file://...english.js?_=1449747918242. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource." AND "Uncaught TypeError: Cannot read property 'home' of undefined"
我尝试使用纯 javascript,这给出了 "Uncaught TypeError: Cannot read property 'home' of undefined":
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= getLanguage() + '.js';
head.appendChild(script);
关于如何进行的任何建议?我已经尝试了一天的各种可能的解决方案,但似乎没有任何效果。
与以下相关的问题:
$('head').append('<script src=' + getLanguage() + '.js></script>');
修复者:
document.write('<' + 'script src=' + getLanguage() + '.js' + ' type="text/javascript"><' + '/script>');
jQuery 似乎存在与对同一域中的文件发出非 http 请求相关的问题。
基本上我有一个需要动态加载内容的站点 - 特别是语言环境。我的网站需要 multi-lingual 支持,所以一般的想法是我有一个像 ?language=english 这样的查询参数,然后英语将附加到 header 以便它获取正确的数据在我的网页中使用。所以喜欢:
//script 1
//getLanguage() gets the specified query parameter, like 'english'
$('head').append('<script src=' + getLanguage() + '.js'></script>');
然后在整个脚本 1 中我会这样做:
$('#mainHeader').append(window.i18n['home'].mainHead());
这是定义变量的脚本的英文版:
//english.js
(function(A) {
A.i18n = {
home: {
mainHead: function(b) { return 'test123'; },
}
}
})(this);
这在 运行 在本地网络服务器上有效。 运行 它作为一个文件(这是我需要做的)我得到这个:
"XMLHttpRequest cannot load file://...english.js?_=1449747918242. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource." AND "Uncaught TypeError: Cannot read property 'home' of undefined"
我尝试使用纯 javascript,这给出了 "Uncaught TypeError: Cannot read property 'home' of undefined":
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= getLanguage() + '.js';
head.appendChild(script);
关于如何进行的任何建议?我已经尝试了一天的各种可能的解决方案,但似乎没有任何效果。
与以下相关的问题:
$('head').append('<script src=' + getLanguage() + '.js></script>');
修复者:
document.write('<' + 'script src=' + getLanguage() + '.js' + ' type="text/javascript"><' + '/script>');
jQuery 似乎存在与对同一域中的文件发出非 http 请求相关的问题。