$.ajax({url: 'http://gmaps-samples-v3.googlecode.com/svn-history/r16/trunk/xmlparsing/util.js', dataType: 'script text text', crossdomain:'true', success: function(msg, status, obj){console.log(msg);console.log(status);console.log(obj)}, mimetype: 'text/plain', cache:false});
我試着運行上面的代碼和它的變體 - 刪除mimetype,緩存,將dataType設置爲'腳本文本'和'腳本腳本文本'。如何在JavaScript中獲取.js腳本的源代碼?
直接從jQuery的文檔:
多個,空間分隔值:在jQuery 1.5 ,jQuery的可以在 的dataType從它在 Content-Type頭收到你 轉換要求。例如,如果要將 文本響應視爲XML,則 將對「dataType」使用「text xml」。您還可以創建JSONP請求,將 作爲文本接收,並將其解釋爲 jQuery作爲XML:「jsonp text xml」。 同樣,速記字符串,如 「JSONP XML」將首先嚐試 從JSONP轉換爲XML,並且, 做不到這一點,從JSONP轉換爲 文本,然後從文本到XML
我僅限於輸入'script'類型的dataType請求,否則我會得到「... Access-Control-Allow-Origin不允許的」錯誤。但是,通過所有權利,我不應該自由地在jQuery中解釋它,但我想嗎?我已經明確要求將它作爲文本,但msg(從服務器返回的數據)總是「未定義」,無論我做什麼。
是否有任何解決方法,這個,哈克或不?
編輯:此代碼工程因爲它加載JavaScript文件並將其下載到用戶的瀏覽器。但我仍然無法查看它!
我明白,如果我m不允許請求JSON對象或類似的東西,因爲它可能包含敏感數據。 但這是一個腳本!如果允許我執行代碼並運行其中的函數,爲什麼我無法查看源代碼? – 2011-06-10 04:42:08
內容類型被認爲不足以用於安全目的。在很多情況下,服務器使用錯誤的服務器(或者可能會這樣做)。 – 2011-06-10 04:48:19
啊,我明白了。 我剛剛測試了一些代碼,並且似乎您可以提出請求(並已接受/返回)**任何**,只要您聲明預期的數據類型爲'script'類型即可(例如,嘗試http:// google.com)瀏覽器仍會嘗試「執行」此代碼,但會導致SyntaxError。 – 2011-06-10 04:56:47