XMLHttpRequest отправляет тип контента как HTML вместо json - PullRequest
0 голосов
/ 16 мая 2018

XMLHttpRequest отправляет content-type как HTML вместо json и показывает ошибку 404, однако через несколько секунд (тестирование с 15 секундами) начинает работать как положено и начинает отправку данных с типом содержимого json , Это происходит как в Firefox, так и в Chrome.

Однако это работает, когда я отправляю тот же запрос по replay XHR или edit and replay в chrome или firefox соответственно.

вот мои коды. Получение объекта XMLHTTPRequest

        //Browser Support Code
        function ajaxobj() {
            var ajaxRequest;

            // The variable that makes Ajax possible!
            try {
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
            }
            catch (e) {
                // Internet Explorer Browsers
                try {
                    ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch (e) {
                    try {
                        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch (e) {
                        // Something went wrong
                        //alert("Your browser broke!");
                        return false;
                    }
                }
            }
            return ajaxRequest;

        }

Функция отправки данных на сервер.

        var serverData = "localhost";
        // A function to send the JSON data to the server
        function ajaxInit(urlId, query) {
            // getting and setting the ajaxRequest object
            var ajaxRequest = ajaxobj();
            ajaxRequest.onreadystatechange = function () {
                if (ajaxRequest.readyState == 4) {
                    if (ajaxRequest.status == 200) {
                        console.log("Response got from server : ",ajaxRequest.responseText);
                        try{
                            var mainResponse = JSON.parse(ajaxRequest.responseText);
                            ajaxResponse(mainResponse);
                        }
                        catch(e){
                            console.log("There has been an error on the server. Please try again later!!!")
                        }


                    }
                    else
                        errorCallback(ajaxRequest.status);
                }
            }

            var serverData = {};
            serverData.data = [];
            // settin the url ID as the server ID in the data
            query.type = urlId;
            serverData.data.push(query);

            ajaxRequest.open("POST", serverPage, true);
            ajaxRequest.setRequestHeader("Content-type", "application/json;charset=UTF-8");
            ajaxRequest.send(JSON.stringify(serverData));
            //console.log(JSON.stringify(serverData));
        }

Отправка данных на сервер.

// sending on page load  
// didnt worked 404 error  
ajaxInit("index", formData);
// sending after 3 seconds. 
// didn't worked 404 error
setTimeout(() => {
    ajaxInit("index", formData); 
},3000);
// sending after 15 seconds. 
// luckily this workd
setTimeout(() => {
    ajaxInit("index", formData); 
},15000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...