他们会不断阻止原籍问题。我知道,默认情况下,无法通过额外的配置从远程加载它们, 但这是荒谬的,毫无意义!我不想在main.html代码中附加它们,因为它们很多而且有些非常大。
首先想到的是,最初从另一个域中复制有一些事情要做,但是它会抛出相同的交叉原始错误,从你尝试的“text!templates / ...”开始不存在的事情,即使是那么远关于找不到文件的错误。
代码:
<script src="https://cdnjs.cloudflare.com/ajax/libs/require-jquery/0.25.0/require-jquery.js"></script>
require.config({
config: {
text: {
useXhr: function (url, protocol, hostname, port) {
return true;
}
}
};
paths: {
jquery:"http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js",
underscore: "underscore",
text: "libs/text",
backbone: "http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min",
marionette: "http://cdnjs.cloudflare.com/ajax/libs/backbone.marionette/2.2.1/backbone.marionette.min"
)
});
require(["App","jquery", "underscore", "backbone", "marionette","text!templates/basket/basket.html"], function(App,$,_,Backbone,Marionette,template){
结果(在Firefox + Chrome中):
GET http://myhost.../templates/basket/basket.html 302 FOUND (message with RED colour)
GET http://error.myhost/? 200 OK (with black)
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://error.myhost.../?. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
尝试更改useXhr: function (url, protocol, hostname, port)
,但不知道正确的语法,是(url:"my URL", protocol:'my host protocol'.. port:XX)
还是它们应该保留原样?
但是,如果它们在我的主机服务器中,那么改变的重点是什么?我错过了什么吗?任何人都可以给出任何提示吗?
提前谢谢!
答案 0 :(得分:0)
对于require.config
插件,您的text
看起来不错。
我很确定您的问题出在服务器端。您需要确保服务器正在将Access-Control-Allow-Origin
属性发送到您的原始域。
在您require
该文字之前,请尝试添加:
$.support.cors = true;
这可能“迫使”它起作用,虽然我不是100%肯定。如果您现在不想弄乱服务器,请尝试通过添加CORS支持来解决服务器上的问题。