[英]XHTTP request from REST API
我有这个API
[HttpGet("data")]
public dynamic GetData(){
return context.DataTable.ToList();
}
我尝试使用此代码段在Javascript上调用它;
function getData(){
var xhttp = XMLHttpRequest();
xhttp.open("GET", "api/myclass/data", true);
xhttp.setRequestHeader("Content-type","application/json");
xhttp.send();
var resp = xhttp.responseText;
}
但是,它仅返回空的XMLHttpRequest
。
我认为URL出了问题。 我怎么能调用我的Javascript API?
该请求可能需要一些时间才能收到响应,因此您必须等待。 这样的事情。
function getData(){
var xhttp = XMLHttpRequest();
xhttp.open("GET", "api/myclass/data", true); //the request is asynchronous
xhttp.onreadystatechange = function(){
if(this.readyState == 4 && this.state == 200){ //**this** is xhttp
//data are received and ready to use
var resp = this.responseText;
//do whatever you want with resp but never try to **return** it from the function
}
}
xhttp.setRequestHeader("Content-type","application/json");
xhttp.send();
//var resp = xhttp.responseText; //too early ;(
}
由于您尚未检查您回答的答复,因此我怀疑您的后端出了点问题。 但是,这是功能解决方案的示例:
<!DOCTYPE html> <html> <body> <h2>Using the XMLHttpRequest Object</h2> <div id="demo"> <button type="button" onclick="loadXMLDoc()">Change Content</button> </div> <script> function loadXMLDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { console.log("Status is: "+this.status); if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", "xmlhttp_info.txt", true); xhttp.send(); } </script> </body> </html>
您可以在此处找到更多信息。 但是在行
xhttp.open("GET", "api/myclass/data", true);
第二个参数是ur服务器中文件的地址。 您确定您输入了正确的格式吗? ur data
文件的扩展名是什么。
我想,后端和前端都应该重新考虑。 去做吧:
为了确保使其与async = false
xhttp.open(“ GET”,“ api / myclass / data”,false);
因此,@ Alex Kudryashev指出,不会有延迟
解:
您需要先找到line的结果
console.log("Status is: "+this.status);
在您的浏览器控制台中。
如果您将responseText
设为空,则可能是因为您从后端发送了一个空字符串(我们不确定,因为您尚未使用邮递员测试您的后端), 但是了解响应的状态至关重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.