2011-04-26 61 views
5

我在基于jQuery的JavaScript代码中执行AJAX调用。该响应包含一个<script>标签。但是,似乎jQuery删除了这个标签。jQuery是否删除AJAX请求返回的脚本标记?

这是jQuery或XHR的正常行为还是bug?

+0

编辑你的问题 - 这是一个很好的问题,但它是可怕的阅读。 – ThiefMaster 2011-04-26 07:34:00

+0

谢谢thiefMaster;) – 2011-04-26 09:21:45

回答

5

这取决于您在AJAX调用中设置的dataType选项。如果将其设置为html,它将以纯文本的形式返回HTML,脚本标记已准备好插入到DOM中。如果设置为script,那么jQuery将尝试运行脚本并将结果作为纯文本字符串返回。

如果您未设置dataType,那么jQuery将自动从响应MIME类型推断出该类型。

查看关于dataType设置的更多信息,请查看jQuery文档(http://api.jquery.com/jQuery.ajax/)。

+0

谢谢you.i检查内容类型在萤火虫回应标题,它是文本/ HTML,但没有脚本标记是什么是从AJAX返回。 – 2011-04-26 09:21:27

+0

您可以尝试将'dataType'设置为'text'以查看是否有帮助。这将使jQuery以纯文本的形式返回您的响应,而无需处理。 – 2011-04-26 09:33:20

+0

谢谢you.i会尝试。但现在,我看到了firebug中的响应选项卡中的脚本标记,但没有看到萤火虫的html选项卡中的脚本标记。 – 2011-04-26 09:44:14

0

取决于你的jQuery版本。 我试过1.4,将删除(但执行)<script>,而1.9会保留它。