我想知道原始的$ .ajax()调用是否使用dataType: 'text'
进行。
无论如何在.done()
处理程序中看到这个?我正在尝试$.ajaxSettings()
,但我没有看到dataType
的选项。
答案 0 :(得分:3)
如果没有为ajax设置显式设置context
参数,那么this
内的.done()
指针就是您启动ajax调用时创建的jqXHR对象(添加承诺方法)。该对象包含您使用的所有自定义设置,例如dataType
。因此,您只需引用dataType
:
this.dataType
中的.done()
处理程序中的
:
$.ajax('example.php', {dataType: "json"}).done(function(data) {
var type = this.dataType;
});
如果您使用的context
属性将更改this
,那么您可以在进行ajax调用之前将dataType
保存在本地变量中,并通过该闭包访问它:
function yourFunc() {
var type = "json";
$.ajax('example.php', {dataType: type, context: someOtherObject}).done(function(data) {
// can access the local variable type here
});
}
答案 1 :(得分:0)
如何做到以下几点:
.done(function(data){ console.log(this.dataType); });
在该上下文中, this
表示在启动ajax调用时创建的jqXHR对象。