动态加载远程js提示CORS 头缺少 Access-Control-Allow-Origin错误

例子

ajaxPage("yy","http://static.111cn.net/js/jquery-1.8.0.min.js");

function ajaxPage(sId,url)
{
 var oXmlHttp = getHttpRequest();
 oXmlHttp.onreadystatechange = function()
 {
  //4代表数据发送完毕
  if ( oXmlHttp.readyState == 4 )
  {
   //0为访问的本地,200代表访问服务器成功,304代表没做修改访问的是缓存
   if(oXmlHttp.status == 200 || oXmlHttp.status == 0 || oXmlHttp.status == 304)
   {
    includeJS(sId,oXmlHttp.responseText);
   }   
  }
 }
 oXmlHttp.open("GET",url,false);//true为异步加载(即在发送ajax的同时可运行其他代码)false为//同步加载(加载的同时不能执行其他代码);
 oXmlHttp.send(null);
}

function getHttpRequest()
{
 if(window.ActiveXObject)//IE
 {
  return new ActiveXObject("MsXml2.XmlHttp");
 }
 else if(window.XMLHttpRequest)//其他
 {
  return new XMLHttpRequest();
 }
}

结果报错

已拦截跨源请求:同源策略禁止读取位于 http://static.111cn.net/js/jquery-1.8.0.min.js 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。

原因分析

上面的错误报告提示的非常的清楚就是不能通过ajax跨源请求所以可以直接调用本域下的内容或直接jsinclude的哦。

解决办法

ajaxPage("yy","http://static.111cn.net/js/jquery-1.8.0.min.js");

修改成

ajaxPage("yy","/js/jquery-1.8.0.min.js"); 即可解决

当然如果可以修改页面的直接加载<script language="javascript"  src="js/v4/jquery.js"></script> 方式就没有问题了。

时间: 2024-09-15 09:47:48

动态加载远程js提示CORS 头缺少 Access-Control-Allow-Origin错误的相关文章

动态加载dtree.js树treeview

 本篇文章主要是对动态加载dtree.js树treeview的示例代码进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>Destr

JS加载器如何动态加载外部js文件_javascript技巧

今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js var MiniSite=new Object(); /** * 判断浏览器 */ MiniSite.Browser={ ie:/msie/.test(window.navigator.userAgent.toLowerCase()), moz:/gecko/.test(window.navigator.userAgent.toLowerCase()), opera:/opera/.test(windo

动态加载dtree.js树treeview(示例代码)_javascript技巧

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html><head><title>Destroydrop » Javascripts » Tree</title><link rel="StyleSh

jquery动态加载外部js文件代码研究

$.getScript函数动态加载js 有时网页上的js过多就会让网页加载太慢,用户体验不好,我们可以使用jquery $.getScript函数动态加载我们需要的js文件    代码如下 复制代码 $("#load").click(function(){  $.getScript('helloworld.js', function() {     $("#content").html('Javascript is loaded successful!');  })

js动态加载外部js文件的方法

(function (clover) { clover.loadScript = function loadScript(url, callback) { var heads = document.getElementsByTagName('head'); if (heads.length == 0) { alert("page must have one head element"); } var head = heads[0]; var script = document.crea

js的动态加载、缓存、更新以及复用(四)

本来想一气呵成,把加载的过程都写了,但是卡着呢,所以只好在分成两份了. 1.页面里使用<script>来加载 boot.js . 2.然后在boot.js里面动态加载 bootLoad.js.以时间作为标识 var dateVer = date.getYear() + "_" + date.getMonth() + "_" + date.getDate() + "_" + date.getHours(); 这样可以保证一小时内肯定会被

js的动态加载、缓存、更新以及复用

本来想一气呵成,把加载的过程都写了,但是卡着呢,所以只好在分成两份了. 1.页面里使用<script>来加载 boot.js . 2.然后在boot.js里面动态加载 bootLoad.js.以时间作为标识 var dateVer = date.getYear() + "_" + date.getMonth() + "_" + date.getDate() + "_" + date.getHours(); 这样可以保证一小时内肯定会被

js异步动态加载js与css文件代码

 jquery动态加载css,js文件方法简单很, 例 方法1: 代码如下 $.getscript("test.js"); 方法2: 代码如下 function loadjs(file){  var head = $('head').remove('#loadscript');  $("<scri"+"pt>"+"</scr"+"ipt>").attr({src:file,type:

动态加载Js代码到Head标签中的脚本

我遇到了这样的问题,请教google,结果大多数只是介绍那个注册js的几个函数,而这几个函数插入的js都在body里面,幸而在老外那里看到了这个代码,其实比较简单,但够有用 1 HtmlGenericControl Include2 = new HtmlGenericControl("script"); 2 Include2.Attributes.Add("type", "text/javascript"); 3 Include2.InnerHt