有一些JavaScript,我需要通過以下工作:JavaScript安全同一臺服務器上/交叉腳本
://本地主機
://服務器
:/www.domainnamefortheserver.com
當我從http://servername運行腳本與IFRAME引用域 - 它不加載。
有沒有辦法讓Javascript安全模型識別服務器名稱,本地主機和域作爲相同的「域」?
感謝
有一些JavaScript,我需要通過以下工作:JavaScript安全同一臺服務器上/交叉腳本
://本地主機
://服務器
:/www.domainnamefortheserver.com
當我從http://servername運行腳本與IFRAME引用域 - 它不加載。
有沒有辦法讓Javascript安全模型識別服務器名稱,本地主機和域作爲相同的「域」?
感謝
如果您在UNIX上運行,你可以編輯/ etc/hosts來給您的服務器假的DNS條目。
例如。
127.0.0.1本地主機www.domainnamefortheserver.com
那麼你可以隨時連接到它的正確名稱,即使它不是活的網站上呢。不要試圖直接破壞javascript安全。
這也適用於OSX。我期望Windows的工作方式不同。
在Windows中,它是一樣的,你可以添加一個條目到你的主機文件位於 - \ Windows \ system32 \ drivers \ etc \ – brendan 2009-12-01 15:34:35
謝謝。我懷疑在18個月的時間裏,當我突然發現我在Windows上需要它時,我會來找那個評論的! – 2009-12-01 17:15:36
此外,關於使用相對路徑的下面的評論是很好的,除非你受到一些第三方軟件的限制,這些軟件將全部域放到任何地方。 – 2009-12-01 17:16:21
如果您使用的是服務器端語言生成頁面,您可以設置安全域,像這樣:
document.domain = $CURRENT_HOSTNAME;
所以安全域將是用戶所請求的域名。這是一個黑暗中的鏡頭,但我希望它有幫助。
你是什麼意思
我指的都是域名
?
如果您在http://servername(使用<script src=''>
)的頁面上加載腳本,即使它們來自另一個域,它們也可以訪問http://servername上的所有內容。
但是,如果您嘗試對其他域進行AJAX調用,那麼您遇到了問題。您可以使用克里斯托弗解釋的技巧,即將域名製作成別名。
使用根相對URI:
href="/foo/bar"
,而不是絕對URI:
href="http://example.com/foo/bar"
這樣的文件將會從相同的主機名來加載。
您是否使用絕對URL? – Wookai 2009-12-01 15:36:41