Moodle API 回复
Moodle API response
如何从 api 响应中挑出信息以仅从特定响应字段收集数据?
var domainname = 'https://sandbox.moodledemo.net';
var token = '234bc817adf979e93f442946c00aa223';
var functionname = 'core_course_get_courses';
var serverurl = domainname + '/webservice/rest/server.php' ;
var data = {
wstoken: token,
wsfunction: functionname,
moodlewsrestformat: 'json',
}
var response = $.ajax(
{ type: 'GET',
data: data,
url: serverurl
}
);
console.log(response);
我正在尝试使用 response.responseJSON[] 或 response.statusText,但我遇到错误或身份不明。
如何从 responseJSON 字段中获取数据?
Response output
它是未定义的,因为目前,当您 运行 在最后几行控制台时,服务器还没有响应。由于 Ajax returns 承诺,您可以附加 then()
或 done()
以检索 JSON
数据。
var domainname = 'https://sandbox.moodledemo.net';
var token = '234bc817adf979e93f442946c00aa223';
var functionname = 'core_course_get_courses';
var serverurl = domainname + '/webservice/rest/server.php' ;
var data = {
wstoken: token,
wsfunction: functionname,
moodlewsrestformat: 'json',
}
var response = $.ajax(
{ type: 'GET',
data: data,
url: serverurl
}
);
console.log(response);
response.then(res=>{ //======> Returns data in JSON format
console.log(res)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
您可以传递一个匿名函数来设置调用 getData
函数的数据,在 .done
:
中
function getData(fn) {
var domainname = 'https://sandbox.moodledemo.net';
var token = '<<token>>';
var functionname = 'core_course_get_courses';
var serverurl = domainname + '/webservice/rest/server.php';
var data = {
wstoken: token,
wsfunction: functionname,
moodlewsrestformat: 'json',
}
var response = $.ajax({
type: 'GET',
data: data,
url: serverurl
});
// pass the function parameter
response.done(fn);
}
// call
getData(function (r) {
console.log(r, r.length);
});
替代.done
你也可以使用.then
如何从 api 响应中挑出信息以仅从特定响应字段收集数据?
var domainname = 'https://sandbox.moodledemo.net';
var token = '234bc817adf979e93f442946c00aa223';
var functionname = 'core_course_get_courses';
var serverurl = domainname + '/webservice/rest/server.php' ;
var data = {
wstoken: token,
wsfunction: functionname,
moodlewsrestformat: 'json',
}
var response = $.ajax(
{ type: 'GET',
data: data,
url: serverurl
}
);
console.log(response);
我正在尝试使用 response.responseJSON[] 或 response.statusText,但我遇到错误或身份不明。
如何从 responseJSON 字段中获取数据?
Response output
它是未定义的,因为目前,当您 运行 在最后几行控制台时,服务器还没有响应。由于 Ajax returns 承诺,您可以附加 then()
或 done()
以检索 JSON
数据。
var domainname = 'https://sandbox.moodledemo.net';
var token = '234bc817adf979e93f442946c00aa223';
var functionname = 'core_course_get_courses';
var serverurl = domainname + '/webservice/rest/server.php' ;
var data = {
wstoken: token,
wsfunction: functionname,
moodlewsrestformat: 'json',
}
var response = $.ajax(
{ type: 'GET',
data: data,
url: serverurl
}
);
console.log(response);
response.then(res=>{ //======> Returns data in JSON format
console.log(res)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
您可以传递一个匿名函数来设置调用 getData
函数的数据,在 .done
:
function getData(fn) {
var domainname = 'https://sandbox.moodledemo.net';
var token = '<<token>>';
var functionname = 'core_course_get_courses';
var serverurl = domainname + '/webservice/rest/server.php';
var data = {
wstoken: token,
wsfunction: functionname,
moodlewsrestformat: 'json',
}
var response = $.ajax({
type: 'GET',
data: data,
url: serverurl
});
// pass the function parameter
response.done(fn);
}
// call
getData(function (r) {
console.log(r, r.length);
});
替代.done
你也可以使用.then