Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery加载方法不加载站点脚本和css为什么?_Javascript_Jquery_Html_Ajax_Cors - Fatal编程技术网

Javascript Jquery加载方法不加载站点脚本和css为什么?

Javascript Jquery加载方法不加载站点脚本和css为什么?,javascript,jquery,html,ajax,cors,Javascript,Jquery,Html,Ajax,Cors,我正在将外部站点加载到混合应用程序 Jquery代码 <script> $(document).ready(function () { $("#div").load("https://test.com"); }); </script> $(文档).ready(函数(){ $(“#div”)。加载(“https://test.com"); }); 我想了解为什么它不加载脚本和CSS,这是一个CORS问题或其他问题,还有什么选择?您拥有外部站点吗?如果是这样,您

我正在将外部站点加载到混合应用程序

Jquery代码

<script>
$(document).ready(function () {
    $("#div").load("https://test.com");
});
</script>

$(文档).ready(函数(){
$(“#div”)。加载(“https://test.com");
});

我想了解为什么它不加载脚本和CSS,这是一个CORS问题或其他问题,还有什么选择?

您拥有外部站点吗?如果是这样,您可以调整两台服务器上的CORS设置,以允许跨域脚本和css

如果你想嵌入一个完整的外部网站,最简单的方法就是使用iframe

<iframe id="myIframe" src=""></iframe>

是的,这与CORS相关,并在现代浏览器中实现,以保护用户免受跨站点脚本攻击等。一些较旧的浏览器(看看你,IE)没有这些限制,你可能会发现上面提供的代码在一定程度上可以工作

作为记录,我建议针对跨站点应用程序,除非您是外部站点的所有者并且能够修改响应标题,否则无论如何都不能这样做。如果您确实具有对外部站点的修改访问权限,则可以使用
iframe
实现解决方案


这个问题来自我的老问题,我仍然没有解决,我尝试使用iframe,但我遇到了这个问题,请检查您无法检测iframe状态。出于安全原因,它设置为独立于其父页面嵌入外部源,并且出于安全原因,您也无法通过xhr进行完整的跨域加载。但是你可以做一些创造性的事情,比如用xhr测试连接,如果你得到了成功的响应,然后将src加载到iframe中。如果失败,那么你可以加载/重定向到错误页面。不是100%确定fire解决方案,但它可以在不影响用户安全的情况下工作。我可以使用service worker实现解决方案吗?service workers是完全异步的,它不能与您尝试在此处实现的解决方案一起工作。是的,加载顺序是导入jQuery需要在顶部并加载,然后才能使用任何JQuery方法。我建议你练习一下在浏览器中使用控制台,按f12键并查看所有选项卡,特别是控制台,如果出现问题,它将为你提供很好的提示。熟悉这个工具,它将帮助您了解它是如何工作的。祝您学习顺利:)这个问题来自我的老问题,我仍然没有解决,我尝试使用iframe,但我遇到了这个问题,请检查
// jQuery
$.ajax({
  url: 'https://test.com',
  dataType: 'JSONP',
  type: 'GET',
  async: false,
  crossDomain: true,
  success: function () { },
  failure: function () { },
  complete: function (data) {
    if (data.readyState == '4' && data.status == '200') {
      console.warn({ Status: 'SUCCESS' })
      $('#myIframe').attr('src', 'https://test.com');
    }
    else {
      console.warn({ Status: 'FAIL' })
    }
  }
});