今天一位网友测试他的网站的时候,结果发现加载字体的时候Status响应状态一直为(canceled ),具体如下图:
想要解决这个问题,需要先给大家补充一点知识:什么是canceled?
中止或取消后该请求的状态码将为canceled 。
解决方法
想要解决问题,肯定要先知道原因。这位网友说,他网站也有用ajax。
方法一:ajax异步、同步问题
我们都知道ajax请求默认是异步的,我把请求改成同步的就行了。设置如下参数:async: false;
$.ajax({
url:'page.php',
type:'post',
data Type:'JSON',
data:{},
async:false,
success:function(re){
alert(1212);
if(re.code == 200){
alert(145);
total=re.total;
}
}
})
事实上,ajax改成同步并没有任何效果,也和ajax并没有什么关系,因为我在调试窗口“Console”得到了“Access-Control-Allow-Origin跨域”相关的错误,如下图:
方法二:Access-Control-Allow-Origin跨域 问题
关于跨域我就不多说了,我博客有太多相关的文章了,具体请查看:Access-Control-Allow-Origin跨域 或 跨域 相关文章;
事实上,我帮这位网友解决了跨域问题后,“mui.ttf”字体 和“get-loan-list.ajax”两个文件Status响应状态都为200了。“mui.ttf”字体再也不是响应状态Status为canceled的结果了。
我只修改了nginx.conf的配置文件,代码如下:
location ~* \.(eot|ttf|woff|woff2|svg|ajax)$ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
}
总结:
我相信很多人都会碰到“响应状态Status为canceled”的错误,可能每个人具体以一种什么情况碰到的又会不一样,可能本文章的方法又不一定能帮到你,希望见谅!毕竟不是每一个人碰到“响应状态Status为canceled”都是“Access-Control-Allow-Origin跨域 和 ajax”的问题。
主要是给大家一个思路吧!