美文网首页
线上问题之关于ajax返回json类型的说明

线上问题之关于ajax返回json类型的说明

作者: 秋慕云 | 来源:发表于2018-12-10 08:48 被阅读0次

    最近在做一个项目的迁移工作,把项目A中的某个功能迁移到另一个项目B中,遇到一个关于ajax返回类型的问题。

    在ajax的参数中,有一项dataType,是对ajax返回数据格式的指定,具体如下:

    "xml": 返回 XML 文档,可用 jQuery 处理

    "html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行

    "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)

    "json": 返回 JSON 数据

    "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数

    "text": 返回纯文本字符串

    如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。

    在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。

    项目A中使用的是1.4的MIME版本,返回的是Object,如下图:

    而项目B中使用的是1.4版本之前的版本,返回的是参照Http请求的contentType来决定的,参照下图是text/html,即json的字符串:

    这样导致的结果时,页面无法展示数据,所以需要进行修改。

    修改方案

    修改的方式有两种:

    1. 在ajax请求追加返回类型指定,即dataType:'json'

    2. 升级MIME的版本,
      maven配置如下:
      <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpmime</artifactId>
      <version>4.2.1</version>
      </dependency>

    相关文章

      网友评论

          本文标题:线上问题之关于ajax返回json类型的说明

          本文链接:https://www.haomeiwen.com/subject/pwamcqtx.html