如何使用 jQuery AJAX POST JSON 数据

罗基拉兹

最近接到一个项目,说明如下:

创建一个 HTML 页面,该页面将调用我们的 API 端点以检索 API 记录器上的日志列表,将数据加载到视觉上令人愉悦的网格中。页面应每分钟进行一次此调用,并通过 AJAX 使用新数据更新现有行(部分页面更新,不应重新加载整个页面)。如果新数据中不再存在该行,则删除该行。如果任何行中都不存在新数据,请添加包含数据的新行。

API 调用将使用POST带有 jQ​​uery AJAX 片段方法对我们的 API 端点进行,具有以下 JSON 请求对象:

{
 "token": "CyvW1tW7hBMGNvSY752xr4QbK1TStbxhy8xSGfpMm1JxlSwjn7fXWU2LD7tVoP5przifFd0TnAHMJxf0maAvyAGN90FHfWk76IhO"
}

来自服务器的 JSON Response 对象应如下所示:

{
 "logs": [
 {
 "Description": string,
 "ApplicationName": string,
 "Client_IP": string,
 "Server_IP": string,
 "RequestEndPoint": string,
 "LastOccurrence": datetime string,
 "ResponseCode": integer,
 "Last24HourLogCount": integer
 },
 ]
}

我在处理POST请求和收集 JSON 数据时遇到问题当我使用 Postman 进行 API 测试调用时,我能够接收 JSON 数据,但当我通过 HTML 页面进行调用时却无法接收,以下是我的尝试:

尝试 1

在这里,我POST向端点创建了一个请求,并尝试将 JSON 数据转换为要在警报中显示的字符串:

我收到以下警报弹出窗口:

这是控制台中的消息:

如果我删除令牌标头并将 Postman 中的 JSON 数据添加到我的变量中,我会收到此控制台错误:

$.ajax({
    type: "POST",
    url: "https://fetch1.hipposhq.com/hipposapilogstatus",
    data: data,
    dataType: 'json',
    headers:{
         "token": "CyvW1tW7hBMGNvSY752xr4QbK1TStbxhy8xSGfpMm1JxlSwjn7fXWU2LD7tVoP5przifFd0TnAHMJxf0maAvyAGN90FHfWk76IhO"
    },
    success: function(data){alert(JSON.stringify(data))},
    error: function(errMsg) {
         alert(errMsg);
    }
});

尝试 2

在这里,我创建了一个POST对端点请求并尝试在控制台日志中显示 JSON 数据,但我收到了一个错误:

这是控制台中的消息:

如果我删除令牌标头并将 Postman 中的 JSON 数据添加到我的变量中,我会收到相同的错误:

var data = {}

$.ajax({
    type: "POST",
    url: "https://fetch1.hipposhq.com/hipposapilogstatus",
    data: data,
    dataType: 'json',
    headers:{
        "token": "CyvW1tW7hBMGNvSY752xr4QbK1TStbxhy8xSGfpMm1JxlSwjn7fXWU2LD7tVoP5przifFd0TnAHMJxf0maAvyAGN90FHfWk76IhO"
    },             
    success: function(data){
        console.log(data);
    }
});

尝试 3

在这里,我POST使用从 Postman 收到的 JSON 数据(省略了实际数据)创建了一个请求,以接收 JSON 数据并将其显示在控制台日志中,但我收到了一个错误:

这是控制台中的错误:

当我添加令牌标头时,我收到相同的访问和资源错误:

$.ajax({
    type:"POST",
    url:"https://fetch1.hipposhq.com/hipposapilogstatus",
    processData: false,
    dataType: 'json',
    data: JSON.stringify({
            "logs": [
                {
                "Description": "string",
                "ApplicationName": "string",
                "Client_IP": "string",
                "Server_IP": "string",
                "RequestEndPoint": "string",
                "LastOccurrence": "datetime string",
                "ResponseCode": integer,
                "Last24HourLogCount": integer,
                },
            ]
        }),
    success: function(data){
        console.log(data);
    }
});

我希望能够在控制台中以字符串/对象/数组的形式接收 JSON 数据,以便将其显示在我的页面上,但我不确定从哪里开始。

普隆詹

您必须将令牌作为数据发送

const $output = $("#logs");
const process = response => $output.html(
    response.logs.map(log =>  `<hr/><dl>${
      Object.entries(log).map(([key,val]) => `<dt>${key}</dt><dd>${val}</dd>`).join("")
    }</dl>`).join(""));

$.ajax({
  type: "POST",
  url: "https://fetch1.hipposhq.com/hipposapilogstatus",
  dataType: 'json',
  data: {
    "token": "CyvW1tW7hBMGNvSY752xr4QbK1TStbxhy8xSGfpMm1JxlSwjn7fXWU2LD7tVoP5przifFd0TnAHMJxf0maAvyAGN90FHfWk76IhO"
  },
  success: process,
  error: function(request, status, error) {
    console.log(request.responseText);
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="logs"><div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

允许在jQuery Ajax中混合使用POST / JSON数据吗?

如何使用jQuery Ajax显示JSON数据?

无法使用Jquery Ajax post方法将json数据显示为html

Jquery AJAX | 如何循环json数据?

如何使用Jquery和Ajax从JSON文件检索数据?

使用jQuery ajax POST接收多个数据

使用JSONP数据类型CrossDomain的JQuery ajax post

如何与文件一起ajax POST json数据?

无法使用 jQuery 显示来自 AJAX 调用 JSON 数据的数据

如何使用Promises顺序发送Javascript / jQuery AJAX POST请求,遍历请求数据数组?

jQuery ajax获取json数据

如何使用Jquery和Ajax将Json数据发送到数据库中?

使用JSON格式的数据用JQuery AJAX填充HTML表:如何从变量中循环访问数据?

如何使用json数据和ajax创建动态jquery数据表?

如何使用ajax从jquery数据表中嵌套的json子数组中获取数据

如何使用jQuery ajax请求在数据表中显示json响应数据?

如何使用Jquery AJAX从PHP json_encode读取JSON数据

jQuery AJAX未传递“ POST”数据

数据未完成的 JQuery Ajax Post

JavaScript jQuery AJAX POST数据错误

Ajax POST 后 JQuery 刷新数据

Jquery Ajax Post 再次返回数据

如何通过Ajax在jQuery DataTables中显示JSON数据?

如何通过jquery ajax以json格式保存数据

Razor 页面 POST 处理程序未从 jQuery AJAX 接收 JSON 数据

无法通过 JQuery/AJAX 将 POST 数据发送到 JSON 文件,为什么?

jQuery ajax POST数据变量最多可容纳199个json数组

jQuery-通过POST(ajax)发送JSON数据并在php中检索

jQuery ajax post 使用 FormData() append data element 在 post 后找不到附加的数据元素