'Content-Length: 0', Javascript, XMLHttpRequest, Django REST API - PullRequest
0 голосов
/ 13 июня 2018

Хотелось бы найти помощь с моим кодом.

Я создал базу данных на mySQL и подключил ее к Django REST.Они оба работают должным образом, и я могу получить доступ к REST с помощью клиента Firefox REST, возвращая правильные таблицы из базы данных.

Я начал работать для пользовательского интерфейса с html и javascript и я столкнулся с проблемой, которую не могу решить.Я учусь, и это часть моей школьной работы, но, к сожалению, моих учителей нет в настоящий момент из-за летних каникул, и я с нетерпением жду продолжения своего проекта.Поэтому я прошу вашей помощи.

Поскольку я тестировал REST Django через REST-клиент Firefox, я уверен, что база данных и служба REST не виноваты, поэтому мы подошли к моему коду.

Кажется, я могу подключиться к службе REST, давая мне код 200 и состояние 4 ( картинки, связанные под )

ReadyStateChange + ReadyState console.logs

На рисунке 2 показано, что мой запрос GET застревает в OPTIONS вместо выполнения правильного запроса.

200 OPTIONS

Однако я не могувытащить данные, давая мне 'Content-Length: 0' .

Первоначально я думал, что проблема будет связана с проблемой междоменного запроса, пока мой сокурсник не сказал, что это не так, однако он также не смог найти решение для моего кода.

Я пытаюсь найти причину и способ обойти эту ошибку, и если вы, ребята, действительно знаете, почему это происходит, я бы глубоко признателен за вашу помощь!

Вот мой код:

<div id="demo"></div>
<script>
loadData() //function kutsu

function loadData(){

if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
} else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} 

var url = "http://127.0.0.1:8000/vamkrs/";
xmlhttp.open("GET", url, true);
xmlhttp.withCredentials = true;
xmlhttp.setRequestHeader("Authorization", "Basic " + btoa("username:password"));
xmlhttp.send(); 

setTimeout(xmlhttp.onreadystatechange = function() {
console.log(this.status);
console.log(this.readyState);
if (this.readyState == 4 && this.status == 200) {
    var myData = JSON.parse(this.responseText); 
    document.getElementById("demo").innerHTML = myData.responseText(); }
},1500); 

/*
xmlhttp.onreadystatechange = function(){
console.log(this.status);
if (this.readyState == 4 && this.status == 200) {
var myData = JSON.parse(this.responseText); 
    document.getElementById("demo").innerHTML = myData.responseText();}
};  */
}
</script>

Ps.Извините, английский не является моим родным языком, поэтому некоторые орфографические ошибки могли быть допущены

Pss.При первом размещении здесь, я прошу прощения, если были допущены ошибки в сообщении

...