我有一个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);
有人可以帮我解决这个问题。我理解交叉脚本可能是一个问题,但如何克服它?而且不应该将警报设为零或空
答案 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语言。