【发布时间】:2013-11-15 15:38:37
【问题描述】:
我在无法修改的服务器中有一个 javascript 文件。
这是我必须下载的脚本示例:
var tags = '';
tags += '<a href="#somelink"><img src="someimage.gif"/></a>;
document.write(tags);
我开始通过 AJAX 下载脚本并执行它,但我遇到了“document.write 无法在异步调用中执行”的问题。
所以我想将脚本下载为纯文本,并从响应中获取我需要的内容,并将其放在我的 html 页面中应该放在的位置,而不需要修改原始脚本。
$.ajax({
type: "GET",
url: "http://myurlexample.com",
dataType: "text",
}).success(function(msg){
console && console.log("The script was downloaded as text: "+msg);
}).error(function(object,status,errortxt){
console && console.log("The script wasn't downloaded as text. The error:"+ errortxt);
});
但是当我使用dataType = "text" 进行下载请求时,AJAX 会引发错误。有什么办法可以解决这个问题并将其实际下载为文本?
P.S:该脚本用于 Firefox OS 特权应用程序,因此我无法将脚本直接放在 html 页面中,因为安全 CSP 不允许 (https://developer.mozilla.org/en-US/Apps/CSP)。
【问题讨论】:
-
您可以在实际进行 Ajax 调用的地方添加代码吗?使用
document.write的脚本是怎么回事? -
这在我的网站上对我有用:
$.ajax({ url: "ascript.js", dataType: "text", success: function(script) { console.log(script); } }); -
Matt: document.write 在异步调用中的问题是脚本没有直接和文档直接链接,所以它不知道应该把变量写到哪里。我从这里学到的:stackoverflow.com/questions/13003644/…。另外,我添加了在问题中进行调用的代码部分
-
我猜你想在这里重塑JSONP。如果您无法修改脚本以在其中实现 JSONP,请确保它不存在。
-
“但是 AJAX 抛出错误” — 什么错误?!
标签: javascript jquery ajax firefox-os