确定要提交的 ajax 数据的类型
Identify type of ajax data to be submitted
我有一个 JQuery 代码,它在所有 ajax 请求中添加额外的 POST 参数以进行 csrf 验证:
$(document).ajaxSend(function (e, xhr, opt) {
if (opt.type == "POST") {
csrf_token = get_cookie("x-csrf-cookie");
opt.data.append('x-csrf-token', csrf_token);
}
});
问题:我想知道如何识别提交数据的类型。目前我正在提交一个 FormData 对象,但我有提交文本类型的新函数,所以我需要区分数据是 FormData 对象还是文本。
提前致谢!
您可以通过检查 data
选项来执行此操作,并查看传入的内容
$(document).ajaxSend(function(e, xhr, opt) {
if (opt.type == "POST") {
if (opt.data instanceof FormData) {
// formData
var csrf_token = get_cookie("x-csrf-cookie");
opt.data.append('x-csrf-token', csrf_token);
} else if (typeof opt.data === 'object') {
// some other object
} else if (typeof opt.data === 'string') {
// string passed as data
} else {
// anything else
}
}
});
最后一个参数是因为您收集了调用 $.ajax
时传递的所有选项
我有一个 JQuery 代码,它在所有 ajax 请求中添加额外的 POST 参数以进行 csrf 验证:
$(document).ajaxSend(function (e, xhr, opt) {
if (opt.type == "POST") {
csrf_token = get_cookie("x-csrf-cookie");
opt.data.append('x-csrf-token', csrf_token);
}
});
问题:我想知道如何识别提交数据的类型。目前我正在提交一个 FormData 对象,但我有提交文本类型的新函数,所以我需要区分数据是 FormData 对象还是文本。
提前致谢!
您可以通过检查 data
选项来执行此操作,并查看传入的内容
$(document).ajaxSend(function(e, xhr, opt) {
if (opt.type == "POST") {
if (opt.data instanceof FormData) {
// formData
var csrf_token = get_cookie("x-csrf-cookie");
opt.data.append('x-csrf-token', csrf_token);
} else if (typeof opt.data === 'object') {
// some other object
} else if (typeof opt.data === 'string') {
// string passed as data
} else {
// anything else
}
}
});
最后一个参数是因为您收集了调用 $.ajax