Files
safekat/httpdocs/assets/js/safekat/components/ajax.js
2024-11-07 20:17:58 +01:00

64 lines
1.5 KiB
JavaScript

class Ajax{
constructor(url, data, headers, success, error, type='default'){
this.url = url;
this.data = data;
this.headers = headers;
this.success = success;
this.error = error;
this.type = type;
this.jqXHR = null;
}
post(){
(this.type == 'default') ? this.ajax('POST'): this.ajaxForm('POST');
}
get(){
this.ajax('GET');
}
put(){
(this.type == 'default') ? this.ajax('PUT'): this.ajaxForm('PUT');
}
delete(){
(this.type == 'default') ? this.ajax('DELETE'): this.ajaxForm('DELETE');
}
abort() {
if (this.jqXHR) {
this.jqXHR.abort();
this.jqXHR = null; // Limpiamos la referencia a la petición
}
}
setData(data){
this.data = data;
}
ajax(method){
if (this.jqXHR) {
this.jqXHR.abort();
}
this.jqXHR = $.ajax({
url : this.url,
type : method,
data: this.data,
headers: this.headers,
success: this.success,
error: this.error
})
}
ajaxForm(method){
if (this.jqXHR) {
this.jqXHR.abort();
}
this.jqXHR = $.ajax({
url : this.url,
type : method,
data: this.data,
processData: false,
contentType: false,
headers: this.headers,
success: this.success,
error: this.error
})
}
}
export default Ajax