Il codice -XMLHttpRequest gettando InvalidSateError dicendo "stato oggetto deve essere aperto"
"use strict";
var AJAX = function (params) {
this.server ={};
this.url = params.url;
this.method = params.method;
this.dataType = params.dataType;
this.formData = params.formData;
this.init = function(){
if(typeof XMLHttpRequest != 'undefined'){
this.server = new XMLHttpRequest();
this.server.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
this.server.setRequestHeader('Content-length', this.formData.length);
this.server.setRequestHeader('Connection', 'close');
console.log("XMLHttpRequest created.");
return true;
}
};
this.send = function(){
if(this.init()){
this.server.open(this.method, this.url, true);
this.server.send(this.formData);
}
};
};
Si sta gettando seguente errore:
Error in event handler for contextMenus: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.
Come è in uso -
var data = new FormData();
data.append('user', 'sachin');
var params = {
url : 'example.com',
method : 'post',
dataType: 'json',
formData : data
};
var backgroundWindow = chrome.extension.getBackgroundPage();
var ajax = new backgroundWindow.AJAX(params);
ajax.send();
Non riesco a sembrare capire qual è la ragione dietro.
Sì. È ovvio. :) Silly me non legge correttamente l'errore. Grazie . – SachinGutte
Un'altra cosa da aggiungere, devo rimuovere intestazioni 'Content-Length' e' Connection'. Il browser si occupa di questo. Ma dove possono essere usati? – SachinGutte
Corretto, il browser si occupa di quelle due intestazioni. Non dovresti specificarli. Se capisco correttamente la tua domanda, non devono essere utilizzati ovunque. – SuperSaiyan