【发布时间】:2014-08-24 19:26:08
【问题描述】:
考虑以下代码,我仅在需要弹出窗口时尝试加载 jquery-ui。当用户单击链接时,将调用此代码
$.when( $.ajax({url: "http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css", dataType: "html", cache: true}),
$.ajax({url: "http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/jquery-ui.min.js", dataType: "script", cache: true}),
$.ajax({url: "../../plugins/jquery.dialogextend.js", dataType: "html", cache: true}) )
.then(
function() { ...code for dialog goes here
此代码失败,因为 jquery-ui.css 由于同源策略而无法加载。错误消息是“同源策略不允许读取位于http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css 的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决”
现在我很困惑,试图找出以下两个问题的答案
在此代码中,jquery-ui.min.js 已加载,但 jquery-ui.css 未加载。由于同源策略,如果没有加载jquery-ui.css,如何加载jquery-ui.min.js?
当我们在标题中包含 jquery-ui.css 时,如
<link href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css"它会加载。为什么同源政策在这里不适用
请帮助我理解这一点。
【问题讨论】: