gpt4 book ai didi

javascript - JSONP 和 DOCTYPE 错误

转载 作者:行者123 更新时间:2023-11-29 15:45:50 26 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。

我正在使用 AJAX 与我的服务器通信。 (我在 localhost 上运行我的 Web 应用程序)。服务器位于,比方说,http://www.example.com

为了绕过同源策略,我使用了 JSONP。我动态创建一个 <script>标记并从我的服务器加载数据。

到目前为止一切顺利。

然后我决定将我的 Web 应用程序上传到这个子域:http://m.example.com

那是我遇到疯狂错误的时候。有时页面会加载,有时不会。当它不加载时,Firebug 抛出 DOCTYPE错误。

我做了一些研究,发现了这个 stackoverflow 帖子:firebug returns syntax error in doctype?

在此链接中引用一个答案:

This usually happens because you are loading an HTML document as a script. This is often caused by <script src=""></script> (i.e. a relative URI pointing at the current, HTML, document)) or one of the scripts pointing to a 404 error.

非常有用的东西。基于所有这些,我从以上所有内容得出结论,每当我的服务器响应缓慢时,<script>标签的 src属性为空。因为那会抛出 404 error , 我得到一个 DOCTYPE Firebug 中的错误。每当我的服务器快速响应时,都没有问题,一切正常。

我该如何解决这个问题?我可以设置一个手动超时或其他东西,但这并不是万无一失的优雅解决方案。

有什么帮助吗?

编辑:

这是一些代码:

此函数用于创建 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);
}

最佳答案

我觉得这里有点误会。您的 script 元素将始终设置其 src 属性,但其内容取决于服务器的响应。我怀疑它会是错误 404(因为它指的是未找到的元素,这几乎不重复),但它可以有 500 种口味。

我建议按原样调试您的查询(即,如果您使用浏览器或一些脚本化的 HTTP UserAgent 打开 http://www.example.com/?data&callback=%callfunction% feel industrious),看看选择要加载的脚本的逻辑可能有什么问题。

关于javascript - JSONP 和 DOCTYPE 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11447814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com