jQuery JSON响应包含在html中

时间:2017-04-16 10:22:55

标签: jquery json ajax

我正在为自动完成功能请求一些JSON。不幸的是,JSON包含了一个html span标记。这是因为用VB编写的后端库很差,操作员在接下来的几个月内没有改变。所以我必须以另一种方式摆脱html span标签。这是我的JS调用和响应:

<span id="fromContext">
{
  "results": [  
  {
    "headline": "headline text",
    "summary": " <em>summary</em> result text",
    "url": "/url/to/page",
    "image": {
      "url": "/media.jpg",
      "alt": "media alt text"
    },
    "count": ""
  },
  {
    "headline": "empty object"
  }
  ],
"hasmore": true
}
</span>

它非常适合使用格式良好的JSON作为响应。但我的回答如下:

var i=0;
...
image.fadeOut(i, function(){
i=500;
...

所以,我能够检测到span(因为它有一个ID),但我不知道如何使用ajax请求访问整个响应的JSON部分。我认为这个主要问题是,ajax调用导致错误,因为响应不是JSON ... 任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以将ajax.dataType属性更改为“text”,将contentType更改为“text / plain”

  contentType: "text/plain; charset=utf-8",
  dataType: "text",

并将响应字符串转换为jquery对象

const $responseObject = $(response);

然后您可以使用

访问有效的json
let text = $responseObject.text(); 

并进一步处理。