我正在尝试在 HTML 中显示一段文本,但我需要将其创建为 JSON 对象并使用 AJAX 读取它。我的代码不起作用

Posted

技术标签:

【中文标题】我正在尝试在 HTML 中显示一段文本,但我需要将其创建为 JSON 对象并使用 AJAX 读取它。我的代码不起作用【英文标题】:I am trying to display a paragraph of text in HTML but I need to create it as a JSON object and read it with AJAX to do so. My code is not working 【发布时间】:2021-11-28 02:33:35 【问题描述】:

我尝试遍历 JSON 对象,但它不起作用。有没有更有效的方法来构建对象?另外,我不确定是否正在发出 AJAX 请求,因为我不断看到一条错误消息,即“出现问题:0”。

这是我的 JS 文件:

$(document).ready(function() 
    $.ajax(
        type: "GET",
        url: "lab4.json",
        dataType: "json",
        success: function(response)

            var message = "";
            
            $.each(responseData.text, function(i, item) 
                $.each(item.tutoring-text, function(x, s) 
                    message += s;  
                );     
            );  
            $("#tutoring-text").html(message);
        , 
        error: function(msg) 
              // there was a problem
              alert("There was a problem: " + msg.status + " " + msg.statusText);
        
      );
    
  );

这是我的 JSON 文件:


    "text":
        
        "tutoring-text": [
        
            "Gamma Nu Eta holds weekly tutoring sessions every Wednesday.",
            "At these tutoring sessions, GNH can help you with any course in your ITWS degree program.",
            "This includes ITWS core classes, such as Intro to ITWS and Web Systems, or classes outside of ITWS, such as Computer Science 1 and Data Structures.",
            "We can also help with any questions that you might have about career development, resumes, as well as just general questions about RPI."      
        ]  
        
     

【问题讨论】:

请注意,代码图像是问题中最没有帮助的内容之一(强烈建议不要使用指向主要信息的外部链接)。 Please do not upload images of code/errors when asking a question. 这需要一个jquery 标签。 错误是什么? 0 error 也会在控制台中显示错误消息。始终查看浏览器的控制台。最有可能是Access to XMLHttpRequest at 'file:///.../lab4.json' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https. - 如果它这条消息,那是因为你试图从本地文件运行ajax。您的文件必须由服务器提供(在本地主机上可以)。 【参考方案1】:

当您的 JSON 结构相当平坦时,您正在尝试迭代。

你真正需要的是

$("#tutoring-text").html(response.text["tutoring-text"].join(""))

【讨论】:

这对我不起作用。 “不工作”是什么意思? 它仍然给我一个错误并且没有打印我需要的文本。 您强迫我们问的明显问题:错误是什么 代码中的错误消息...我不确定是否正在发出 AJAX 请求。

以上是关于我正在尝试在 HTML 中显示一段文本,但我需要将其创建为 JSON 对象并使用 AJAX 读取它。我的代码不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在很长一段时间内逐步向浏览器显示 HTML?

iOS将图像添加到文本字段

在 Google Apps 脚本中用 HTML 替换文本

Webkit 列查找可见文本的范围

HTML标签显示在邮件中[重复]

覆盖图像的目标文本