我使用的是一個網站abc.com
,它在123.com
上承載iframe
頁面。
iframe
中的頁面正在對123.com
上的另一個頁面發出AJAX請求,但我們看到請求被取消。IFRAME內部的AJAX不能在同一臺服務器上工作
除非我錯了 - ,我還沒有在互聯網上找到關於此的任何官方信息 - 由於呼叫不是跨域請求,因此呼叫應該正常工作。
父框架位於不同域的事實是否會阻止iframe
對自己的服務器執行AJAX請求?
我使用的是一個網站abc.com
,它在123.com
上承載iframe
頁面。
iframe
中的頁面正在對123.com
上的另一個頁面發出AJAX請求,但我們看到請求被取消。IFRAME內部的AJAX不能在同一臺服務器上工作
除非我錯了 - ,我還沒有在互聯網上找到關於此的任何官方信息 - 由於呼叫不是跨域請求,因此呼叫應該正常工作。
父框架位於不同域的事實是否會阻止iframe
對自己的服務器執行AJAX請求?
IFRAME應該能夠對其自己的始發站點(相同的源URL)發出ajax請求。但是,請確保REQUEST事件是從IFRAME,而不是父級。
我的第一個猜測是,你正在加載的IFRAME,然後解決它(觸發事件)通過父(JS),以得到它做/獲取/設置一些東西,觸發一個Ajax調用。簡而言之,這是IFRAME域到相同域請求被取消的最可能原因,因爲它仍然被瀏覽器識別爲源自目標域代碼之外。
請求事件必須有機從用戶點擊位於IFRAME本身觸發事件東西在IFRAME或從代碼生成。
換句話說:只是因爲IFRAME可能觸發事件/ AJAX在其JS /代碼/從本身的一些能力,它通常會仍然不允許有父引用,AJAX/JS直接通過JS /代碼。 IFRAME必須根據其加載參數(可能是URL值)進行編碼,否則用戶必須在某物上點擊/採取措施才能在該域上創建用戶生成的事件。
當然,這可能會因瀏覽器和版本的不同而有所不同,因爲您可能會根據父級和iframe之間的交互性進行哄騙。但是一個嚴格的,最新的瀏覽器會試圖阻止你通過js在iFrame上僞造不安全的交互。
爲了得到更好的答案,您需要提供更多關於您正在做/正在做什麼的細節。
我們可以在行動中看到它嗎? iframe中是否有任何選項?這是發生在一個特定的瀏覽器? – Tchoupi 2013-03-16 23:13:46
您能否至少複製粘貼完整的錯誤信息(來自FireBug或開發控制檯)以提供更多信息? – hnafar 2013-03-16 23:16:25
可能與SSL有關。我做了一個快速搜索,發現這個 http://stackoverflow.com/questions/10756526/jquery-ajax-call-fails-and-returns-error-on-facebook-iframes – VishwaKumar 2013-03-22 13:19:51