2011-04-26 53 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會保留它。