我遇到了一个奇怪的问题。
我正在使用 AJAX 与我的服务器通信。(我正在运行我的网络应用程序localhost
)。服务器位于,比如说,http://www.example.com
为了绕过同源策略,我使用 JSONP。我动态创建一个<script>
标签并从我的服务器加载数据。
到目前为止,一切都很好。
然后我决定将我的网络应用程序上传到这个子域:http://m.example.com
那是我遇到疯狂错误的时候。有时页面加载,有时不加载。当它不加载时,Firebug 会抛出一个DOCTYPE
错误。
我做了一些研究,发现了这篇 stackoverflow 帖子:firebug 在 doctype 中返回语法错误?
引用此链接中的答案:
这通常是因为您将 HTML 文档作为脚本加载。这通常是由
<script src=""></script>
(即指向当前、HTML、文档的相对 URI)或指向 404 错误的脚本之一引起的。
很有帮助的东西。基于所有这些,我从以上所有内容中得出结论,每当我的服务器响应缓慢时,<script>
标签的src
属性为空。由于这会引发,因此我在 Firebug 中404 error
遇到错误。DOCTYPE
每当我的服务器快速响应时,就没有问题并且一切正常。
我该如何解决这个问题?我可以设置手动超时或其他东西,但这并不是万无一失和优雅的解决方案。
有帮助吗?
编辑:
这是一些代码:
该函数用于script
动态创建标签:
function appendScriptToHead() {
var element = document.createElement("script");
element.src = 'http://www.example.com/?data&callback=callfunction';
document.getElementsByTagName("head")[0].appendChild(element)
}
当上述包含 JSONP 数据的 url 被加载时调用该回调函数:
function callfunction(response) {
alert(response);
}