我的网站上运行了一个JS文件,它工作正常。
现在我想把另一个带有脚本完整 url 的网站放回我的网站。
<script src="http://www-js.mydomains.com/some/path/file.js"></script>
现在它真的仍然跨域到我的服务器上的 XML 请求吗?
所以在文件中.js我有类似的东西
dojo.xhrGet({url: '/some/path/file.xml', sync: true, handleAs: 'xml', error: function(result,args){alert(result.responseText+'-'+args.responseText)}, load: function(result){ ....
这只会在其他站点上死亡(未定义的大道场响应)...周围有没有
我认为你应该使用"script"dojo/request/script而不是xhr。
require(["dojo/request/script", "dojo/dom", "dojo/dom-construct", "dojo/json", "dojo/on", "dojo/domReady!"],
function(script, dom, domConst, JSON, on){
on(dom.byId("startButton"), "click", function(){
domConst.place("<p>Requesting...</p>", "output");
script.get("helloworld.jsonp.js", {
jsonp: "callback"
}).then(function(data){
domConst.place("<p>response data: <code>" + JSON.stringify(data) + "</code></p>", "output");
});
});
});
http://dojotoolkit.org/reference-guide/1.9/dojo/request/script.html
现在它真的仍然跨域到我的服务器上的 XML 请求吗?
是的。源基于托管脚本的 HTML 文档的 URI,而不是脚本的来源 URI。
您应该发送 CORS 规范中定义的 HTTP 标头,以允许其他站点使用您的脚本(或其自己的脚本)访问服务器上的内容。
此外,JS 访问的 URI 也相对于文档而不是脚本,因此您需要使用绝对或方案相对 URI,而不是当前使用的服务器根相对 URI。