我有一个简单的html文件。它访问url1并成功解析了json响应。转发json响应
CLIENT - > URL1 - >响应客户
我修改了代码,HTML和调用URL2
CLIENT - > URL2 - > URL1 - >响应URL2 - >响应客户
我评论了url1并调用了url2。 url2是一个简单的servlet,它调用url1并获得响应。 servlet将相同的响应返回给客户端,但是这次ajax/jquery返回解析错误。当我alert(request.responseText)时,它完全匹配URL1返回的响应。
$.ajax({
//url: "http://abc1.com", // Line 1
url: "http://abc2.com", // Line 2
data: {param1, param2},
dataType: "jsonp",
type: "GET",
async:false,
success: function(parsed_json) {
alert("Success");
},
error: function (request, status, error) {
alert("Error" + error);
alert(request.responseText);
}
该Servlet只是一个层之间的输入流的内容复制到输出流。
InputStream input = new URL(url).openStream();
resp.setContentType("application/json"); // Apache commons IOUtils to copy IOUtils.copy(input, resp.getOutputStream());
resp.getOutputStream().flush();
我手动验证JSON串响应,它似乎是相同的。 可能是什么问题?
你能否请一个例子json字符串。 (缩短,如果它是一个大样本) – Mithon 2012-07-22 02:18:00
@Mithon json字符串很大,但在阅读您的评论后,我觉得我应该尝试使用较小的json字符串来找出问题。 – 2sb 2012-07-22 02:31:19
这里有一个有用的linkey为你:http://jsonlint.com/ – Mithon 2012-07-22 02:52:47