将网页数据作为json对象获取?

时间:2010-04-22 07:33:59

标签: javascript ajax xmlhttprequest xss

我有一个url,我需要哪个页面作为json对象的数据。 我尝试了xmlhttprequest和ajaxobject两个但是没有用。当我将其作为警报提供时,它甚至不会给出responseText 生病了这里的代码片段。 url = http://mydomain.com:port/a/b/c

AJAX:

var ajaxRequest = new ajaxObject(URL);

ajaxRequest.callback = function (responseText,responseStatus) {

  alert(responseStatus); 

  JSONData = responseText.parseJSON();

  processData(JSONData);
}

使用xmlhttprequest:

var client = new XMLHttpRequest();

client.open('GET',URL,true );

data = JSON.parse(client.responseText);

alert(data.links.length);

有人可以帮我解决这个问题。我理解交叉脚本可能是一个问题,但如何克服它?而且不应该将警报设为零或空

3 个答案:

答案 0 :(得分:1)

我之前遇到类似问题的问题,因为服务器返回内容类型text/html而不是application/json

如果您未设置,则默认值为text/html

如果你使用php,这就是你设置它的方式,

header('Content-type: application/json');

如果你使用jsp,这就是如何设置它,

response.setContentType('application/json');

必须在将回复写入客户端之前完成。

安装firebug,它可以让你看到返回的实际内容类型。

确保你的是application/json

答案 1 :(得分:0)

我会在这里做一些分析并说你正在尝试使用ajax从不同的域加载数据?

如果是这种情况,您将无法使用标准的ajax请求来执行此操作。那里有一些服务,例如:http://www.ajax-cross-domain.com/,旨在帮助在必要时克服这个问题。

Calling Cross Domain Web Services in AJAX还提供了一些有用的信息,说明如何配置远程域以接受传入的请求等。

希望这有帮助。

答案 2 :(得分:0)

考虑使用LitJSON

  

LitJSON是一个小而快的库   用于处理JSON格式的数据。   它是用C#编写的,兼容   所有.Net语言。