[英]Require.js(+text plugin) refuse to load any external text!templates even they are located in my own host server?
他们将不断阻止跨源问题。 我知道,默认情况下无法使用额外的配置从远程加载它们,但这是荒谬的,毫无意义! 而且我不想将它们附加在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)
还是应该他们照原样离开吗? 但是,如果它们在我的主机服务器中,更改的目的又是什么? 我误会了吗? 有人可以提供任何提示吗?
提前致谢!
对于text
插件,您的require.config
对我来说看起来不错。
我很确定您的问题出在服务器端。 您需要确保服务器正在将Access-Control-Allow-Origin
属性发送到您的源域。
在您require
该文本之前,请尝试添加:
$.support.cors = true;
尽管我不确定100%,但这可能会“迫使”它工作。 如果您现在不想与服务器打交道,请尝试这样做,但是可以通过添加CORS支持来解决服务器上的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.