遇见奇葩的问题前端处理内嵌的网页地址是不是404
建议用第一种
1、link和script可以区分跨域和404的错误
- var isRunUrl=function(url){
- return new Promise(function (resolve, reject) {
- // 测试链接连通性, 主要检测404错误
- // 由于AJAX通常无法区分404和跨域问题
- // 所以只能用script 或者 link标签
- // link比script更容易捕获错误
- var dom= document.createElement('link');
- dom.href = url;
- dom.rel = 'stylesheet';
- document.head.appendChild(dom);
- dom.onload = function () {
- document.head.removeChild(dom);
- resolve();
- dom.onerror = reject;
- isRunUrl("测试地址").then(function(data){
- //处理resolve的代码
- console.log("Promise被置为resolve", data);;
- },function(data){
- //处理reject的代码
- console .log("程序被置为了reject",data);
2、不用跨域,只区分404
- // 判断一个url是否可以访问
- function IsLoad(url,fun){
- url: url,
- type: 'GET',
- success: function(response) {
- if($.isFunction(fun)){
- fun(true);
- error:function () {
- if($.isFunction(fun)){
- fun(false);
- IsLoad('同一域下的url地址',function(res){
- alert('请求的url可以访问');