关于一个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;
}
}

...全文
11737 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
淘人居士 2020-07-02
  • 打赏
  • 举报
回复
目测缺少逗号,函数成员之间的逗号
jio可 2020-06-29
  • 打赏
  • 举报
回复
ajax/get/post加上是function关键字 formatDatas 前面的}删掉 在最后加上} 写的Class 怎么没有写constructor
放风喽 2020-06-29
  • 打赏
  • 举报
回复
下次复制成代码。这样没法表达位置。报错的74行,ajax前面的分号是谁的结束分号?是doAjax吗?

87,997

社区成员

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

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