在 API 向后端发送请求之前,我们有机会可以修改 api 的配置,还有请求里的数据 .. 在这个 api 的配置对象里 .. 可以添加一个 beforeSend 属性 .. 它的值是一个匿名函数 .. 这个函数里面有一个参数是 settings ...
在这个函数里,你可以做些判断,去修改 api 的配置,或者去改变发送的数据 .. 比如我想在用户没有指定文章标题的时候添加一个默认的标题 ..
先去判断一下 .. if .. . 要发送的数据是在 data 这个属性里 .. settings.data.title .. . 看看它是不是空白的 .. 如果是 ... 就设置一下这个 title 属性的值 .. settings.data.title 等于 .. 标题可以截取正文内容的前三十个字 .. settings.data.content_raw.substring(0, 30)
我们可以在控制台上输出要发送给服务端的数据 .. console.log(settings.data);
最后需要返回这个 settings .. return settings;
保存 ... 这里我们不输入标题 .. 直接输入文章的正文 ... 然后点击 提交 .. 在控制台上会显示发送给服务端的数据 ... 这里 title 属性的值就是根据正文内容生成的 ...
再打开 WordPress 的文章管理界面 .. 刷新一下 ... 这里会显示刚才创建的文章内容 ... 它的标题就是文章正文的一部分 ...
$('.ui.form').api({
action: 'posts',
method: 'POST',
serializeForm: true,
beforeSend: function (settings) {
if (settings.data.title === '') {
settings.data.title = settings.data.content_raw.substring(0, 30);
}
console.log(settings.data);
return settings;
},
beforeXHR: function (xhr) {
xhr.setRequestHeader('Authorization', 'Basic ' + btoa('wanghao' + ":" + '111111'));
return xhr;
}
});