关于一个vue项目的问题

weixin_42635007 2020-06-25 09:40:39
跑项目地时候,报了
29% building modules 159/160 modules 1 active ...library\modules\_to-absolute-i 94% asset optimization ERROR Failed to compile with 1 errors7:17:43 10: AM

error in ./src/utils/HTTP.js

Syntax Error: Unexpected token, expected ; (74:14)

72 | },timeout);
73 | }
> 74 | ajax (opt){
| ^
75 | this[doAjax](opt);
76 | }
77 | post (url,data,dataType,successCB,errorCB,completeCB) {



@ ./src/models/index.js 8:0-30
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/pages/index.vue
@ ./src/pages/index.vue
@ ./src/router/index.js
@ ./src/main.js
@ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

因为是自己封装的http.js,http.js代码:
const doAjax = Symbol('doAjax');
export default class HTTP {
[doAjax] (options) {
let o = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLhttp');
if (!o){
throw new Error('你的浏览器不支持异步发起HTTP请求');
}
let opt = options || {},
type = (opt.type || 'GET').toUpperCase(),
async = '' + opt.async === 'false' ? false : true,
dataType = opt.dataType || 'JSON',
jsonp = opt.jsonp || 'cb',
jsonpCallback = opt.jsonpCallback || 'jQuery' + randomNum() + '_'+n,
utl = opt.url,
data = opt.data || null,
timeout = opt.timeout || 30000,
error = opt.error || function (){},
success = opt.success || function (){},
complete = opt.complete || function (){},
t = null;
if (!url){
throw new Error('你没有填写URL');
}
if (dataType.toUpperCase() ==='JSONP' && type !== 'GET'){
throw new Error('如果dataType为JSONP,type请你设置GET或不设置');
}
if(dataType.toUpperCase() === 'JSONP'){
var oScript = document.createElement('script');
oScript.src = url.indexOf('?') ===-1 ? url + '?' +jsonp+ '=' +jsonpCallback : url + '&' + jsonp + '=' + jsonpCallback;
document.body.appendChild(oScript);
document.body.removeChild(oScript);
window[jsonpCallback] = (data) => {
success(data);
};
return;
}
o.onreadystatechange = () => {
if(o.readyState ===4){
if((o.status >=200 && o.status <300) || o.status ===304){
switch(dataType.toUpperCase()){
case 'JSON':
success(JSON.parse(o.responseText));
break;
case 'TEXT':
success(o.responseText);
break;
case 'XML':
success(o.responseXML);
break;
default:
success(JSON.parse(o.responseText));
}
}else{
error();
}
complete();

clearTimeout(t);
t = null;
o = null;
}
o.open(type,url,async);
type === 'POST' && o.setRequestHeader('Content-type','application/x-www-form-urlencoded');
o.send(type === 'GET' ? null : formatDatas(data));

t = setTimeout(()=>{
throw new Error('本次请求已超时,API地址:'+url);
o.abort();
clearTimeout(t);
t =null;
o =null;
},timeout);
}
ajax (opt){
this[doAjax](opt)
}
post (url,data,dataType,successCB,errorCB,completeCB) {
this[doAjax]({
type:'POST',
url:url,
data:data,
dataType:dataType,
success:successCB,
error:errorCB,
complete:completeCB
});
}
get (url,dataType,successCB,errorCB,completeCB) {
this[doAjax]({
type:'GET',
url:url,
dataType:dataType,
success:csuccessCB,
error:errorCB,
complete:completeCB
});
}
}

function formatDatas(obj){
var str='';
for (var key in obj){
str += key + '=' + obj[key] + '&';
}
return str.replace(/&$/,'');
}
function randomNum(){
var num = '';
for(var i =0; i<20; i++){
num += Math.floor(Math.random() * 10);
}
return num;
}
}

...全文
11699 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
淘人居士 2020-07-02
  • 打赏
  • 举报
回复
目测缺少逗号,函数成员之间的逗号
jio可 2020-06-29
  • 打赏
  • 举报
回复
ajax/get/post加上是function关键字 formatDatas 前面的}删掉 在最后加上} 写的Class 怎么没有写constructor
放风喽 2020-06-29
  • 打赏
  • 举报
回复
下次复制成代码。这样没法表达位置。报错的74行,ajax前面的分号是谁的结束分号?是doAjax吗?
Vue3.0来了,你还学的动吗? 2020年9月底,Vue3.0正式版终于发布了。Vue在全球拥有 130 多万用户 ,它被应用于各种不同的场景中。而在国内,更是最火热的前端框架,2.0与3.0的开发模式有了很大的改变,所以3.0的全新版本势必会引发新的一波学习潮流。对于前端开发者来说,不管你嘴上如何“学不动”,注定离不开“真相定律”,Vue3.0是你提升自身技术能力,晋升中级工程师一定要掌握的。  本课程将基于 Vue3.0 正式版,从Vue基础语法入手,全面掌握 Vue3.0 全家桶技术栈,并结合实战项目开发,让你拥有Vue3.0项目开发经验,更好的掌握Vue开发企业项目的流程 。 本课程共包括三个模块 一、Vue基础篇 本模块将讲解Vue3.0基本用法、插值表达式、常用指令等知识点,还会精讲Vue 3.0核心语法,如计算属性、过滤器、监视器、模板、生命周期等内容。会带你深入理解Vue组件化技术,讲解全局组件和局部组件的定义,组件间数据传递,以及Vue内置组件等知识点。让你掌握模块化的概念,会通过Vue脚本架搭建项目,并掌握使用Axios发送AJAX请求,让你快速入门Vue3.0。 二、Vue核心篇 这个模块会带你讲解Vue3.0全家桶的知识点(Vue Router路由+Vuex状态管理),涉及Vue路由的用法、包括路由嵌套、路由模式、编程式导航、路由守卫等,还会全面讲解Vuex状态管理机制及使用,理解state、mutation、action等核心概念,让你轻松掌握Vue全家桶。 三、项目实战篇 实战项目会贴近企业流程,按照企业级别代码质量和工程开发流程进行授课,让你理解这套技术在企业中被使用的真实流程,更好的掌握Vue各个基础知识点。项目开发流程包括项目需求分析->环境搭建与配置->搭建远程Git仓库->接口分析->项目开发->打包上线。实战项目涉及内容

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧