'Content-Length:0',Javascript,XMLHttpRequest,Django REST API

时间:2018-06-13 07:14:41

标签: django rest xmlhttprequest onreadystatechange

我希望我能在代码中找到一些帮助。

我在mySQL上设置了一个数据库,并将其连接到Django REST。这些都按预期工作,我可以使用Firefox REST Client访问REST,并从数据库中返回正确的表。

我已经开始使用 html javascript 进行用户界面工作,我遇到了一个我无法解决的问题。我是学生,这是我学校工作的一部分,但不幸的是,由于暑假,我的老师暂时无法使用,我渴望继续我的项目。因此,我向你寻求帮助。

由于我通过Firefox REST Client测试了Django REST,我确信数据库和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>

聚苯乙烯。对不起,英语不是我的母语,因此可能会出现一些拼写错误

PSS的。第一次在这里发帖,如果在帖子

上犯了错误,我道歉

0 个答案:

没有答案