2015-06-09 63 views
-2

我試圖使用Ajax請求得到一個HTML內容到外部URL,並將其加載到特定的div元素,但我做跨域​​Ajax請求JavaScript的跨域GET方法

有錯誤跨源請求被阻止:相同來源策略不允許讀取 遠程資源 http://www.myowndomain.com/embed.php?c=5576b014b210a。 (原因: 缺少CORS頭'Access-Control-Allow-Origin')。

這是一個必須在用戶中的任何博客,論壇或網站(任何域)粘貼示例代碼:

<script type="text/javascript" src="http://myowndomain.com/embed.js"></script><script type="text/javascript">embed.init(["5576b014b210a", "myembeded"]);embed.myCollage();</script><div id="myembeded"></div> 

那麼這裏用於embed.js在我的領域

居住碼
var embed = embed || (function(){ 
    var _args = {}; 

    return { 
     init : function(param) { 
      _args = param; 
     }, 
     myCollage : function() { 
      embed.load_home(_args[0],_args[1]); 
     }, 
     load_home:function (id,elementId) { 
      var request = embed.createCORSRequest("get", "http://myowndomain.com/embed.php?c="+id); 
      if (request){ 
       request.onload = function(){ 
        document.getElementById(elementId).innerHTML = request.responseText; 
       }; 
       request.send(); 
      } 
     }, 
     createCORSRequest:function (method, url){ 
      var xhr = new XMLHttpRequest(); 
      if ("withCredentials" in xhr){ 
       xhr.open(method, url, true); 
      } else if (typeof XDomainRequest != "undefined"){ 
       xhr = new XDomainRequest(); 
       xhr.open(method, url); 
      } else { 
       xhr = null; 
      } 
      return xhr; 
     } 
    }; 
}()); 

,爲embed.php住在我的域名

if(isset($_GET['c'])){ 
    echo file_get_contents('http://myowndomain.com/embed/?u='.$_GET['c']); 
} 

回答

0

已經解決了。通過添加到我的embed.js:

header("Access-Control-Allow-Origin: *"); 

感謝您的想法。

0

這是在瀏覽器中實現的一項功能,可防止您執行不在本地域上的請求。

如果其他網站有允許的API,則使用他們的API。否則,你無法獲得數據。如果它是您的網站,請修改您的Web服務器以通過添加標題信息來啓用請求。

這是通過自己查找錯誤可能得到的所有信息。

+0

服務器的哪個部分?我可以將它添加到我的PHP代碼?你可以給我樣本標題信息嗎?謝謝 – Cris