如何将http响应解析为字符串?

时间:2012-11-26 01:41:51

标签: javascript

我是Java和JavaScript的新手,我正在寻找一种获取HTTPResponse的方法,使用.responseText方法解析.indexOf以获取我需要的属性,然后显示此我在html页面中创建的表格行的单元格中的值。有没有办法在每次获得httpresponse时替换此单元格?

非常感谢。

var xHRObject = new XMLHttpRequest();
var url = "http://meteovarkiza.gr/";
xHRObject.open("GET", url, true);
xHRObject.send();
xHRObject.onreadystatechange = function () {
if (xHRObject.readyState==4 && xHRObject.status==200) {
    var response = xHRObject.responseText;
    var startIndex = response.indexOf("Temperature");
    startIndex += 70;
    var subResponse = response.slice(startIndex, startIndex + 4);                
            alert(subResponse);
    }
}

1 个答案:

答案 0 :(得分:1)

  

“我尝试创建一个获取此值的对象但在此之后,我无法在html表中显示它。”

您的问题不是很明确,但您似乎在说您已成功从响应文本和subResponse变量中获取所需的特定值,但您不知道如何将该值放入页面上的特定元素中。

如果是这样,最简单的方法是给该元素id

<td id="resultCell"></td>

然后在你的JS中执行此操作:

document.getElementById("resultCell").innerHTML = subResponse;

在你的问题标题中你说:

  

“如何将http响应解析为字符串?”

......但你似乎已经想到了这一点。如果您无法控制响应格式,那么我猜结合使用正则表达式技巧和/或.indexOf().slice()(或.substr()可能会更好,因为在您的情况下,您始终指定4个字符是这样做的方法。

如果您可以设置响应的格式,那么返回JSON字符串可能要好得多,因为这样您就可以使用JSON.parse()来获取具有可直接访问属性的对象 - 不再需要使用字符串操作。