[英]why my JS can't load document from another server?
我有兩個網站和兩個文件:
provider.com/provide.js
viewer.com/index.html
viewer.com/index.html
向用戶呈現信息,並從provider.com
獲取此信息。 文件viewer.com/index.html
看起來像這樣(使用了jQuery):
<script type="text/javascript"
src="http://provider.com/provide.js"></script>
<script type="text/javascript">
provide(function() { alert('works!'); });
</script>
provider.com/provide.js
看起來像這樣(我省略了不必要的細節):
function provide(callback)
{
$.ajax(
{
'url': 'http://provider.com/',
}
);
}
我在所有瀏覽器中收到此消息: Failed to load resource: cancelled
。
我有一種感覺,我打破了一些安全限制。 誰能解釋有什么限制,如果有的話。 謝謝。
盡管從提供者domtain加載了provide.js文件,但它仍然在HTML頁面的上下文中加載,因此它位於查看器域中。 當代碼嘗試進行AJAX調用以從提供程序域獲取信息時,您將遇到跨域限制。
您不能使用AJAX跨域加載信息。 但是,您可以使用JSONP作為數據格式,然后ajax
方法不會執行AJAX調用,而是使用腳本標記來加載允許的信息。
出於安全原因 ,您無法請求Javascript跨域發送請求。
但是,您可以向服務器發出請求,該服務器可以檢索文件並為您打印結果,然后Javascript可以請求。
可在此處找到其他答案中描述的同源政策的簡要介紹:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.