Javascript RESTful API请求

Javascript RESTful API请求,javascript,html,api,Javascript,Html,Api,首先,我是巴西人,只是为了提醒你我可能犯的任何英语错误 我试图通过HTTP发送RESTful API的请求,但没有收到任何响应 <html> <head> <title>BUSAO</title> <button type="submit" onclick="get()">GET</button> <button type="submit" onclick="post()">POST&l

首先,我是巴西人,只是为了提醒你我可能犯的任何英语错误

我试图通过HTTP发送RESTful API的请求,但没有收到任何响应

<html>

<head>
    <title>BUSAO</title>
    <button type="submit" onclick="get()">GET</button>
    <button type="submit" onclick="post()">POST</button>
    <script type="text/javascript" language="javascript">
        function get() {
            const userAction = async() => {
                const response = await fetch('http://scristovao.azurewebsites.net/api/LastPositions', {
                    method: 'GET',
                    headers: {
                        'Authorization': 'Bearer <>',
                        'Access-Control-Allow-Origin': '*'
                    }
                });
                const myJson = await response.json(); //extract JSON from the http response
                // do something with myJson
                console.log(myJson)
            }
        }

        function post() {
            const userAction = async() => {
                const response = await fetch('http://scristovao.azurewebsites.net/api/Login', {
                    method: 'POST',
                    body: {
                        'UserID': '<>',
                        'Password': '<>'
                    }, // string or object
                    headers: {
                        'Content-Type': 'application/json'
                    }
                });
                const myJson = await response.json(); //extract JSON from the http response
                // do something with myJson
                console.log(myJson)
            }
        }
    </script>
</head>

<body marginheight="0" marginwidth="0">
    <IMG NAME="imgBanner" WIDTH="100%" HEIGHT="100%" BORDER="0" cellspacing="0" cellpadding="0">
</body>

</html>

布索
收到
邮递
函数get(){
const userAction=async()=>{
const response=等待获取('http://scristovao.azurewebsites.net/api/LastPositions', {
方法:“GET”,
标题:{
“授权”:“持票人”,
“访问控制允许来源”:“*”
}
});
const myJson=await response.json();//从http响应中提取json
//用myJson做些什么
console.log(myJson)
}
}
职能职位(){
const userAction=async()=>{
const response=等待获取('http://scristovao.azurewebsites.net/api/Login', {
方法:“POST”,
正文:{
'用户ID':'',
“密码”:”
},//字符串或对象
标题:{
“内容类型”:“应用程序/json”
}
});
const myJson=await response.json();//从http响应中提取json
//用myJson做些什么
console.log(myJson)
}
}
您的get()和post()永远不会调用API

您的函数创建了一个从未调用过的新函数

        function get() {
            const userAction = async() => {} // This creates a new async function, which is not invoked
你甚至可以自己测试

        function get() {
            const userAction = async() => {
                console.log('do get')  // Never gets logged when calling get()
            }
因此,让我们移除函数包装

async function get() {
  console.log('do get')  // Now get logged when calling get()
  const response = await fetch('http://scristovao.azurewebsites.net/api/LastPositions', {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer <BEARER_TOKEN>',
      'Access-Control-Allow-Origin': '*'
    }
  });
  const myJson = await response.json(); //extract JSON from the http response
  // do something with myJson
  console.log(myJson)
  return myJson
}

异步函数get(){ console.log('do get')//现在在调用get()时记录日志 const response=等待获取('http://scristovao.azurewebsites.net/api/LastPositions', { 方法:“GET”, 标题:{ “授权”:“持票人”, “访问控制允许来源”:“*” } }); const myJson=await response.json();//从http响应中提取json //用myJson做些什么 console.log(myJson) 返回myJson } 您的post功能是相同的。卸下包装后:

async function post() {
    const response = await fetch('http://scristovao.azurewebsites.net/api/Login', {
      method: 'POST',
      body: {
        'UserID': '<username>',
        'Password': '<password>'
      }, // string or object
      headers: {
        'Content-Type': 'application/json'
      }
    });
    const myJson = await response.json(); //extract JSON from the http response
    // do something with myJson
    console.log(myJson)
  return myJson
}
异步函数post(){ const response=等待获取('http://scristovao.azurewebsites.net/api/Login', { 方法:“POST”, 正文:{ '用户ID':'', “密码”:” },//字符串或对象 标题:{ “内容类型”:“应用程序/json” } }); const myJson=await response.json();//从http响应中提取json //用myJson做些什么 console.log(myJson) 返回myJson }
我在您的代码片段中看到,您在单击时调用一个函数,它不返回任何内容,只将函数设置为变量。因此,要获得想要的行为,您应该将其更改为以下内容:


函数get(){
const userAction=async()=>{
const response=等待获取('http://scristovao.azurewebsites.net/api/LastPositions', ...);
const myJson=await response.json();//从http响应中提取json
//用myJson做些什么
console.log(响应)
}
//调用操作本身以启动提取
userAction();
}
职能职位(){
const userAction=async()=>{
const response=等待获取('http://scristovao.azurewebsites.net/api/Login', ...);
const myJson=await response.json();//从http响应中提取json
//用myJson做些什么
console.log(myJson)
}
//调用操作本身以启动提取
userAction();
}

您是否收到任何错误?希望这些凭据无效@Dumisani您的编辑使您感到荣幸,但它的用途有限,因为这些值在编辑历史记录中仍然可见。唯一有帮助的是OP立即更改密码。@fire zero请尽快更改您的凭据!这是一个已经过期的JWT令牌,所以这里没有安全问题。