Javascript CORS仍处于安全状态错误:操作不安全

Javascript CORS仍处于安全状态错误:操作不安全,javascript,jquery,ajax,node.js,cors,Javascript,Jquery,Ajax,Node.js,Cors,我在nodejs中使用Express开发了一个http服务器。 服务器正在端口3000上本地运行 提供了一个html页面(index.html),它调用ajax获取内容(作为html内容类型)。 这些ajax内容也在同一个端口上的同一个服务器上以相同的http协议提供 在节点服务器应用程序中,我添加了Cors同源头,但是index.html在控制台中仍然有错误:“安全错误:操作不安全” 在浏览器控制台中,我成功地看到了node Express应用程序中关于“访问控制允许来源”等的标题 此外,同一

我在nodejs中使用Express开发了一个http服务器。 服务器正在端口3000上本地运行

提供了一个html页面(index.html),它调用ajax获取内容(作为html内容类型)。 这些ajax内容也在同一个端口上的同一个服务器上以相同的http协议提供

在节点服务器应用程序中,我添加了Cors同源头,但是index.html在控制台中仍然有错误:“安全错误:操作不安全”

在浏览器控制台中,我成功地看到了node Express应用程序中关于“访问控制允许来源”等的标题

此外,同一个应用程序也在为另一个页面提供服务,index.html可以在没有任何安全错误的情况下成功获取数据

你还有别的建议吗

function getData(url, type, CType, id) {
  //var xhr = new XMLHttpRequest();
  //xhr.open(type, url, true);
  //xhr.withCredentials = true;
  //xhr.onload = function () {
  //console.log(xhr.responseText);
  //if(CType == 'text/html') { $(id).append(xhr.responseText); }
  //};
  //xhr.send();

$.ajax({
  url: url,
  type: type,
  crossDomain:true,
  cors:true,
  success: function(data){ 
    $(id).append(data);
  },
  error: function(data) {
    console.log('ERROR '+url);
    console.log(data);
  $(id).append(getError(url));
  }
});


getData(location.protocol+'//'+location.hostname+(location.port ? ':'+location.port: '')+'/modules/mymodule', 'text/html', 'GET', '#content');

尝试在从客户端到服务器的ajax调用中添加这三个参数

  crossDomain:true,
  cors:true,
  contentType:"application/json;charset=utf-8",
编辑一:

 $.ajax({
   url: url,
   type: type,
   method:"GET",
   crossDomain:true,
   cors:true,
   contentType:"application/html;charset=utf-8"
   success: function(data){ 
     $(id).append(data);
   },
  error: function(data) {
    console.log('ERROR '+url);
    console.log(data);
   $(id).append(getError(url));
  }
});
此外,如果您没有正确使用此方法,请尝试以下方法:


最初使用Firefox 44.0.2和Chromium 48.0.2564.82进行测试时给出:“SyntaxError:未能在'XMLHttpRequest'上执行'open':'TEXT/HTML'不是有效的HTTP方法。”

你的中间两个论点倒过来了


第二个参数应该是
“GET”
,第三个参数
“text/html”

,不幸的是,它以相同的错误结束。
crossDomain:true,
会导致jQuery抑制它通常添加到同一来源的XHR请求中的自定义HTTP头,以防它获得到不同来源的HTTP重定向。如果这是问题所在,则错误可能是抱怨访问控制允许标头。
cors:true,
不是ajax函数支持的选项。它将被忽略。
contentType:“application/json;charset=utf-8”
毫无意义。OP正在发出GET请求,没有请求正文来描述的内容类型。是的,这没有意义,因为您的返回数据类型是htmlIt看起来两个请求都是HTTP或HTTPS(不是混合)。是这样吗?是否涉及任何重定向?(事实上,看起来你是在向同一个来源发出请求,为什么你只是使用一个相对的URL?)你在哪个浏览器中测试?如果您尝试不同的浏览器,您是否会收到不同的(也许更具启发性的)错误消息?>为什么只使用相对URL?哼这是个好问题。。没有理由。。。刚刚在relative中测试过:getData('/modules/mymodule',text/html',GET',content');我得到了相同的结果。最初使用Firefox 44.0.2和Chromium 48.0.2564.82进行测试时给出:“SyntaxError:未能在“XMLHttpRequest”上执行“open”:“TEXT/HTML”不是有效的HTTP方法。”ohhhh。。。。亲爱的。。。我感觉很。。。。。愚蠢的
getData(location.protocol+'//'+location.hostname+(location.port ? ':'+location.port: '')+'/modules/mymodule', 'text/html', 'GET', '#content');