繁体   English   中英

(CORS)-跨域资源共享连接问题

[英](CORS) - Cross-Origin Resource Sharing connection issue

我目前正在为大学项目创建浏览器扩展。 但是,当我写下扩展名时,遇到了一个非常奇怪的问题。 为了充分了解我的处境,我将需要在问题出处所在的债务中对其进行描述。

我当前正在使用的扩展程序必须具有一项功能,该功能可以检查浏览器是否可以连接到Internet。 这就是为什么我决定创建一个非常简单的AJAX请求函数,并根据此函数返回的结果来确定用户是否具有Internet连接的原因。

这就是为什么我创建了这个非常简单的AJAX函数的原因,您可以在此行下面看到它。

 $.ajax({ url: "https://enable-cors.org/index.html", crossDomain: true, }).done(function() { console.log("The link is active"); }).fail(function() { console.log("Please try again later."); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

到目前为止,只要我了解它在做什么,它就可以正常工作。 例如,如果按原样运行该函数,则它将成功连接到该URL,并使用“ .done(function ...”)进行处理(如果将URL更改为“ index273.index”,则该文件不存在)会以“ .fail(function ...”)处理。我对结果感到满意,直到决定进一步测试并从计算机上拔下电缆。然后,当我启动扩展程序时,它返回了从浏览器已与Internet连接。我之所以要执行此功能,是因为它正在缓存url结果,如果无法连接,它将给出最后的缓存值。我尝试解决此问题的下一步是添加“ cache: “ crossDomain:true”属性后面的“ false”,但之后,当我启动扩展程序时,它会出现以下错误:

跨域请求被阻止:“同源起源”策略不允许读取位于https://enable-cors.org/index?_=1538599523573的远程资源。 (原因:CORS标头“ Access-Control-Allow-Origin”缺失)。

如果有人可以帮助我解决这个问题,我将不胜感激。 我想提前为我的英语道歉,但这不是我的母语。

PS:我正在尝试在弹出菜单中实现此功能,而不是在“ content_scripts”类别中实现。 我目前正在Firefox v62.0.3(撰写本文时的最新可用版本)下对其进行测试。

最好的问候,乔治

也许不用调用URL来检查Internet连接是否可用,而可以尝试使用Navigator对象: https : //developer.mozilla.org/en-US/docs/Web/API/Navigator/connection

除非远程服务器允许源(允许的cors),否则您将无法访问它,因为这是一个安全问题。

但是您还可以执行其他操作:

  1. 您可以在加载图像时加载图像和触发事件
  2. 您可以通过JSONP响应访问远程JSON

但是您无法访问其他页面,因为(除非该服务器允许)这是一个安全问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM