簡體   English   中英

為什么我的JS無法從其他服務器加載文件?

[英]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可以請求。

可在此處找到其他答案中描述的同源政策的簡要介紹:

http://en.wikipedia.org/wiki/Same_origin_policy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM