javascript跨域GET方法
javascript cross domain GET method
我正在尝试使用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.phpif(isset($_GET['c'])){
echo file_get_contents('http://myowndomain.com/embed/?u='.$_GET['c']);
}
这是浏览器实现的一个功能,用来防止您执行不在本地域中的请求。
如果其他站点有允许这样做的API,那么使用他们的API。否则你无法获得数据。如果这是你的网站,修改你的web服务器,通过添加标题信息来启用请求。
这是所有可以通过自己查找错误获得的信息。
已经解决了。通过将此添加到我的embed.js:
header("Access-Control-Allow-Origin: *");
谢谢你的主意
相关文章:
- 有没有一种方法可以防止img get请求使用css或js发生
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 如何在router.get()方法中传递url作为参数
- Get方法获取csv文件的内容
- 如何使用get或post方法连接和执行ajax
- 修复AngularJS错误:提供程序必须从$get工厂方法返回值
- JQuery AJAX - 如何使用方法 GET 调用刷新/重新加载页面
- 无法获取未定义node.js的方法get
- WCF json POST请求方法:GET和405(方法不允许)
- 使用表单上的页面锚点提交方法=get
- 从日期选取器发送日期参数,在方法 GET 上不带“/”
- AngularJS根据方法(Get,Put)更改URL
- “无法调用未定义的方法'get'”在Chrome扩展弹窗中.js
- 使用锚标记在 nodeJS 中覆盖方法 GET 以删除
- 不能调用方法'get'未定义的使用mongodb与express
- 为什么javascript触发提交表单(方法get,目标空白)打开弹出窗口而不是新选项卡
- Rails链接到忽略e.preventDefault();从jQuery调用,因为方法::get已设置
- Emberjs Uncatch TypeError:Object #
- 不允许使用OPTIONS方法.Get工作,但不是POST
- 将用户ID传递给核心ajax方法GET,以检索谷歌云存储中的数据