第一道题
/**
@fn makeUrl(action, params?)
生成对后端调用的url. 后端接口的基础URL固定为`http://oliveche.com/quiz/api.php/`
- action: 接口名
- params: URL参数,可以不传
示例:
var url = makeUrl("setOrder"); // 结果:url="http://oliveche.com/quiz/api.php/setOrder"
var url = makeUrl("setOrder", {id: 100}); // 结果:url="http://oliveche.com/quiz/api.php/setOrder?id=100"
var url = makeUrl("setOrder", {id: 100, name: "P&G"}); // 结果:url="http://oliveche.com/quiz/api.php/setOrder?id=100&name=P%26G"
*/
function makeUrl(action, params) {
// TODO: 请在此实现函数:
}
第二道题
/**
@fn callSvr(ac, param?, fn?, postParam?)
发起Ajax调用。(结尾标注问号的参数表示可以不传或为null)
调用的URL地址由`makeUrl(ac, param)`生成,如果第4参数postParam非空,则自动使用HTTP POST请求,否则使用HTTP GET请求。
接口返回数据是一个JSON格式的数组:
- 当调用成功时,返回格式如`[0, {"token": "12345"}]`(数组首元素为0表示调用成功,非0为失败), 此时应调用回调函数 `fn({"token": "12345"})` (fn是第3参数)
- 当调用失败时,返回格式如`[1, "数据库错误"]` 这时应中断执行, 并报错, 比如此例中错误信息为"数据库错误"
示例:调用接口Quiz.get / Quiz.set
// 发HTTP GET请求
callSvr("Quiz.get", {id: 202}, function (data) {
console.log(data);
});
// 指定了postParam,则发HTTP POST请求
callSvr("Quiz.set", {id: 202}, function (data) {
console.log(data);
}, {name: 'ab', value: 'ac'});
*/
function callSvr(ac, param, fn, postParam) {
// TODO: 请在此实现函数:(本例中已包含jQuery库, 可以用jQuery ajax实现,也可以用你熟悉的任何库来实现, 比如fetch/axios/xhr等)
}
求大佬解答?万分感谢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-林老师 2021-05-27 11:16关注
const baseUrl = `http://oliveche.com/quiz/api.php/` function makeUrl(action, params) { // TODO: 请在此实现函数: let url = baseUrl + action let str = '' if (params !== undefined) { url += '?' for (let key in params) { let value = params[key] str = str + key + '=' + value + '&' } str = str.substr(0, str.length - 1) } return url + str }
function callSvr(ac, param, fn, postParam) { let url = makeUrl(ac, param) let method = postParam === undefined ? 'GET' : 'POST' $.ajax({ url: url, method: method, data: postParam ? postParam : null, success: function (res) { res = JSON.parse(res) if (res[0] === 0) { fn(res[1]) } else { alert(res[1]) } } }) }
如上,满意请采纳,谢谢。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 stm32开发clion时遇到的编译问题
- ¥15 lna设计 源简并电感型共源放大器
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用
- ¥15 C++ yoloV5改写遇到的问题
- ¥20 win11修改中文用户名路径
- ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
- ¥15 帮我写一个c++工程