Javascript 检查客户端代码中是否存在URL
我的目标是从客户端检查URL是否有效。我试过以下方法: 1.尝试使用数据类型为JSON的ajax请求。-已阻止跨源请求错误。 2.尝试将JSONP用作数据类型。-在一些网站,如google.com,效果很好,但在其他网站,如facebook.com,效果很好 收到类似“拒绝从中执行脚本”的错误 因为它是MIME类型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
('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";