我的目标是从客户端检查URL是否有效。我尝试了以下事项: 1.使用dataType作为JSON尝试使用ajax请求。 - 获得跨源请求阻止错误。 2.尝试使用JSONP作为数据类型。 - 对于像google.com这样的网站来说工作得很好,但是对于像facebook.com这样的其他网站来说这很好。
得到错误,例如"拒绝执行脚本 FaceBook
callback=jQuery32107833494968122849_1505110738710&_=1505110738711'
因为它的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>
我应该遵循哪些建议或任何替代方法来解决此问题?
答案 0 :(得分:0)
不正确,但大多数网站都有一个favicon.ico,无论是直接来自网站还是来自托管公司,如果它是404图像。
Prefix: owl: <http://www.w3.org/2002/07/owl#>
Prefix: rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Prefix: xml: <http://www.w3.org/XML/1998/namespace>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Prefix: dbr: <http://dbpedia.org/resource/>
Prefix: dbo: <http://dbpedia.org/ontology/>
Prefix: oa: <http://www.w3.org/ns/oa#>
Prefix: ex: <http://example.org/>
Ontology: <http://example.org/>
# Import: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
# Import: <http://www.w3.org/ns/oa#>
ObjectProperty: oa:hasBody
ObjectProperty: oa:hasTarget
ObjectProperty: oa:hasSelector
DataProperty: oa:hasSource
DataProperty: oa:prefix
DataProperty: oa:exact
DataProperty: oa:suffix
AnnotationProperty: rdf:subject
AnnotationProperty: rdf:object
AnnotationProperty: rdf:predicate
Class: oa:Annotation
Class: oa:TextQuoteSelector
Class: rdf:Statement
Individual: ex:annotation12345
Facts:
oa:hasBody ex:statement12345,
oa:hasTarget ex:target12345
Types:
oa:Annotation
Individual: ex:statement12345
Annotations:
rdf:object dbr:London,
rdf:predicate dbo:capital,
rdf:subject dbr:Great_Britain
Types:
rdf:Statement
Individual: ex:target12345
Facts:
oa:hasSelector ex:selector12345,
oa:hasSource "https://en.wikipedia.org/wiki/London"
Individual: ex:selector12345
Facts:
oa:suffix ". ",
oa:prefix ". ",
oa:exact "London is a capital of Great Britain"
Types:
oa:TextQuoteSelector
Individual: dbo:capital
Individual: dbr:Great_Britain
Individual: dbr:London
虽然iframe和对象确实有onload事件,但无效页面也会触发事件。
这是我能想到的最快的网站测试......
<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,每个页面都使用来自其他网址的资源,iframe被阻止以及脚本。您需要从服务器发出请求以测试页面是否存在。
答案 1 :(得分:0)
你最好在你的服务器上写一个代理:
这种方式将避免您必须导航的 CORS 问题,并允许您设置所需的任何 HTTP 标头。