Javascript 检查客户端代码中是否存在URL

Javascript 检查客户端代码中是否存在URL,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我的目标是从客户端检查URL是否有效。我试过以下方法: 1.尝试使用数据类型为JSON的ajax请求。-已阻止跨源请求错误。 2.尝试将JSONP用作数据类型。-在一些网站,如google.com,效果很好,但在其他网站,如facebook.com,效果很好 收到类似“拒绝从中执行脚本”的错误 因为它是MIME类型 ('text/html')不可执行,并且启用了严格的MIME类型检查。” 有什么解决办法吗。我只是想确保不管响应中的内容如何,URL都是有效的 以下是我编写的代码: <htm

我的目标是从客户端检查URL是否有效。我试过以下方法: 1.尝试使用数据类型为JSON的ajax请求。-已阻止跨源请求错误。 2.尝试将JSONP用作数据类型。-在一些网站,如google.com,效果很好,但在其他网站,如facebook.com,效果很好

收到类似“拒绝从中执行脚本”的错误

因为它是MIME类型

('text/html')
不可执行,并且启用了严格的MIME类型检查。”

有什么解决办法吗。我只是想确保不管响应中的内容如何,URL都是有效的

以下是我编写的代码:

<html>
  <body>
     <script 

     src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
    </script>
<script>
    function CallPageMethod() {
            $.ajax({
                type: "GET",
                url: "https://www.google.com/",
                dataType: "jsonp",
                success: function (data, textStatus, xhr) {
                    alert("Success");
                },
                error: function (data, textStatus, xhr) {
                    if (data.status === 200) {
                        alert("Finally I am done")
                    } else {
                        alert("Error");
                    }
                },
            });
    }
</script>
<Button onclick="CallPageMethod()">Test URL</Button>
</body>

</html>

函数CallPageMethod(){
$.ajax({
键入:“获取”,
url:“https://www.google.com/",
数据类型:“jsonp”,
成功:函数(数据、文本状态、xhr){
警惕(“成功”);
},
错误:函数(数据、文本状态、xhr){
如果(data.status==200){
警惕(“我终于完成了”)
}否则{
警报(“错误”);
}
},
});
}
测试URL

我应该采取什么建议或其他方法来解决这个问题?

不正确,但大多数网站都有一个favicon.ico,可以直接从网站获得,也可以由托管公司提供,如果是404图像的话

<img src="https://www.google.com/favicon.ico"
     onload="alert('icon loaded')">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"
     onload="alert('ajax loaded')"></script>

至于facebook,每个页面都使用来自另一个url的资源,iFrame和脚本都被阻止。您需要从服务器发出请求,以测试页面是否存在。

您最好在服务器上编写代理,以便:

  • 客户端使用要检查的URL点击服务器
  • 您的服务器向该URL发出请求并获得响应(或否)
  • 服务器将状态代码返回给客户端

这种方式将避免您必须导航的CORS问题,并允许您设置所需的任何HTTP头。

没有合适的方式在客户端执行此操作,这将“适用于所有网站”。
<img src="https://www.google.com/favicon.ico"
     onload="alert('icon loaded')">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"
     onload="alert('ajax loaded')"></script>
var img = new Image();
img.onload = function () {
   alert("image width is " + img.naturalWidth + " not zero so site is valid");
}
img.src = "https://www.google.com/favicon.ico";