jQuery's ajax
方法提取了許多平臺和用例的具體細節,使得任何類型的異步web請求。
可以調用ajax
方法用的參數的各種組合,並且每一次,完全不同的工作流程將在幕後被執行(同義詞包括jQuery.get()
,jQuery.post()
,jQuery.getJSON()
,jQuery.getScript()
)。
在你正在請求一個網頁上爲當前頁面的同一個域的情況,然後jQuery將不使用<script>
標籤,除非它是專門告訴(通過設置crossDomain
到true
)。相反,它將使用傳統的AJAX方法;或者XMLHttpRequest Object
(並回落到ActiveX
的各種微軟實現)。
但是,如果你正在請求不同的域的情況下,它是不可能在所有現代瀏覽器使用這些方法由於same origin policy。在這種情況下,jQuery.ajax
將訴諸使用<script>
標籤(該技術被命名爲JSONP)。
JSONP需要以特殊的方式來制定,從服務器的響應;即有效的JavaScript,你的迴應不是。需要注意的是JSONP 需要服務器在這個合作是很重要的。欲瞭解更多信息,請閱讀question/answer或Wikipedia。
您的代碼正在處理您的域名,因爲它不要求從服務器的響應是有效的JavaScript(這是不是)。但是,當ajax()開始自動使用JSONP時,您不符合有效的JavaScript要求。