javascript跨域GET方法

javascript cross domain GET method

本文关键字:方法 GET 跨域 javascript      更新时间:2023-09-26

我正在尝试使用ajax请求将html内容加载到外部url并将其加载到特定的div元素但我在做跨域ajax请求时出错

Cross-Origin Request Blocked:同源策略禁止读取的远程资源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>

然后这里是嵌入在我的域

的代码
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']);
}

这是浏览器实现的一个功能,用来防止您执行不在本地域中的请求。

如果其他站点有允许这样做的API,那么使用他们的API。否则你无法获得数据。如果这是你的网站,修改你的web服务器,通过添加标题信息来启用请求。

这是所有可以通过自己查找错误获得的信息。

已经解决了。通过将此添加到我的embed.js:

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

谢谢你的主意

相关文章: