html+Css+Vue.js开发网页遇到的几点问题

最近公司提供一个项目驱动学习Web开发的机会,主动承担了一部分任务,开发了几个简单的网页,学习了Vue.js框架,使用了最简单的html引入vue.js的开发方式,其中发现了几个问题。

Vue Resource 添加Headers之后请求自动变为OPTIONS的问题

网络请求使用了Vue Resource,开始在本地开发的过程中,不管添加Header与否,访问接口都正常,但是在部署到域名网站下测试之后,发现添加了Header的POST、GET、PATCH请求都会变成OPTIONS请求,但是由于服务端并没有兼容OPTIONS请求,所以就会返回405错误,访问失败。

这个问题查找了资料之后发现,这是由于跨域问题导致的(部署网页的地址和访问接口的地址不一致),都会先发送OPTIONS请求,无法在我这边修改,只有服务端兼容OPTIONS。服务端在修改中,还没有验证。

在本地打开网页之所以不存在这个问题,是因为本地并没有部署,所以不存在跨域的问题,故访问正常。

Vue.js通过html方式引入在不同浏览器上的兼容性问题

在使用data属性绑定到html控件上时,发现了这个兼容性问题,在Chrome浏览器上运行正常,但是在华为浏览器,UC浏览器上,data无法绑定到html控件。

后来发现同事做的那两个网页没有用vue属性,一切正常,所以也取消了通过vue的data来绑定数据的方式,直接用原生的方式添加html数据,测试正常。

Vue Resource添加Header的几种方式

全局添加Header
var mheader = {
            'charset': 'UTF-8',
            'Content-Type': 'application/json',
            'X-LL-APP-CODE': 'PUHUI 1.0.0',
            'X-LL-APP-NONCE': '0xffffff',
            'X-LL-APP-TOKEN':token
        };

        Vue.http.options.headers = mheader;
        Vue.http.get("url",{emulateJSON:true})  
拦截器添加Header
Vue.http.interceptors.push(function(request, next) {

  // modify method
  request.method = 'GET';

  request.headers.set('X-LL-APP-CODE', ' ');
  request.headers.set('X-LL-APP-NONCE', ' ');
  request.headers.set('X-LL-APP-TOKEN','dfsfdf');
  console.log("Hello");
  // continue to next interceptor
  next();
});

通过这种方式所有的请求都会被拦截,然后如果在拦截器中重新设置了method,那请求就会被重新设置为method中定义的方式,比如上面的Get请求,所有的请求也会被添加拦截器中设置的headers,不要忘了next方法,否则不会继续执行。

如果你设置了多个拦截器,这些拦截器会依次执行,并不是覆盖的方式,爽翻。

http请求中添加Header
this.$http.post("url",item, {headers:{
                            'charset': 'UTF-8',
                            'Content-Type': 'application/json'
                        }},{emulateJSON:true})                
                        .then((response) => {                    
                            this.getdata=response.data;
                            console.log(this.getdata); 
                            if (this.getdata == null || this.getdata == undefined) {
                                console.log("success rent info is null"); 
                                return;
                            }
                            if (this.getdata.status == true) {
                                console.log("提交成功"); 
                                window.location.href='Success.html';
                            } else {
                                alert(this.getdata.message);
                            }
                        }, response => {
                            console.log(response);
                        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,168评论 19 139
  • 关爱不露痕迹,细品方知玄机,表达如此文艺,哪像老夫老妻[偷笑][偷笑][偷笑]【鸣人秘籍】
    天恩_72bc阅读 171评论 0 0
  • 从08年4月妹妹出生开始,我就结束了独生子女这个称号。早产,保温箱,头部血管瘤,这三个词是在我妹妹出生第一个月里我...
    李腿腿阅读 448评论 0 0
  • 春风和煦,花香迷人。湖北的神农架大森林中,莫不如此。其中,草木甚多。令人高踞望去,无法尽收眼底。苍劲挺拔的大树,直...
    获罪于天无所谛也阅读 1,158评论 0 0