1

我想将托管在 windows azure blob(我拥有)上的 html 文件中的 HTML div 加载到 MVC 视图中,该视图也托管在 windows azure web 角色上(blob 和 web 角色都归我所有)。

我尝试使用 jquery.load() 但它遇到了跨域问题,并且窗口 azure blob 不允许更改CORS策略。接下来我尝试使用Require.JsText.Js来实现这种跨域加载。从Text.Js文档中:

文本插件确定对资源的请求在另一个域上,它会尝试通过使用脚本标签来访问资源的“.js”版本。跨域允许脚本标记 GET 请求。资源的 .js 版本应该只是一个带有 define() 调用的脚本,它返回模块值的字符串。

我使用 require.js 进行跨域调用的 js 代码是:

require(["text!http://xxxxx.blob.core.windows.net/xxx/File"],
 function (html) {
   alert(html);
 }
);

现在我面临的问题是插件成功加载了文件的 .js 版本(通过使用 chrome 检查器确认)但是在我尝试访问文件的文本内容时的回调中,它显示我未定义。我在这里做错了什么,为什么回调没有文本内容?有人可以帮我解决这个问题吗?如果这无法解决,我愿意接受其他方式来实现这种跨域负载。

我对 require.js 文档的理解是跨域调用可以通过调用资源的 javascript 版本来完成。

4

1 回答 1

1

尝试define

define(["text!http://xxxxx.blob.core.windows.net/xxx/File"], function (html) {
   return {
     template: html;
   }:
 }
);
于 2013-01-05T16:37:18.760 回答