2013-12-11 73 views
2

如果JS文件與$ .getJSON是從AJAX請求中的URL從同一服務器(域)加載的,是否可以避免AJAX跨域請求限制? 假設我在serverA.com上有一個web服務,需要從少數其他域的頁面調用,例如subdomain.serverA.com,serverB.com等 JS放置在serverA.com和包含對帶有絕對URL不同的域的多個頁面:避免AJAX跨域限制

<script src="http://serverA.com/ajax.js" /> 

而頁面URL是例如http://serverB.com/page.html

在這種情況下,$.getJSON('http://serverA.com/service/',...會避免跨域限制嗎?

換句話說,在評估AJAX請求的同源策略時,瀏覽器正在查看頁面URL還是JS源URL?

+0

我想你在問:「我能解決跨域限制嗎?」。在這種情況下,答案是「是」,與JSONP - http://stackoverflow.com/questions/5943630/basic-example-of-using-ajax-with-jsonp –

+0

你甚至嘗試在互聯網上搜索?我搜索谷歌你的問題標題和第二個結果是這樣的:http://stackoverflow.com/questions/11299438/jquery-how-to-remove-cross-domain-limitation – giammin

回答

1

換句話說,在評估AJAX請求的同源策略時,瀏覽器正在查看頁面URL還是JS源URL?

相同的源策略基於腳本運行的HTML文檔的URL,而不是腳本本身的URL。

如果帶有$ .getJSON的JS文件與AJAX請求中的URL從同一服務器(域)加載,是否可以避免AJAX跨域請求限制?

Yes,但不是因爲 JS文件從那裏加載。腳本的URL是不相關的。

2

這聽起來像你問:「我可以繞過javascript的跨域限制嗎?」

的答案是 「是」,通過使用JSONP

有很多很好的信息在這裏:

如果不是你問的問題,那麼你可能會編輯澄清一點。

+0

@Quentin釘我的疑惑。感謝您鏈接良好的資源,代理解決方案似乎最容易在我的環境中實施。 – Michlis

1

代替JSONP,我會推薦Cross Origin Resource Sharing

該服務的所有者,只需添加一個標題,該標題給出(靜態,動態或打開)授權原點列表。