附加脚本 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 请求相关的问题。