簡単なhtmlファイルがあります。url1にアクセスし、json応答を正常に解析します。
クライアント->URL1->クライアントへの応答
HTMLでコードを変更し、URL2を呼び出しました
クライアント->URL2->URL1->URL2への応答->クライアントへの応答
url1にコメントを付け、url2を呼び出しました。url2は、url1を呼び出して応答を取得する単純なサーブレットです。サーブレットは同じ応答をクライアントに返しますが、今回はajax/jqueryが解析エラーを返します。警告(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);
}
サーブレットは、入力ストリームのコンテンツを出力ストリームにコピーするための単なるレイヤーです。
InputStream input = new URL(url).openStream();
resp.setContentType("application/json");
// Apache commons IOUtils to copy
IOUtils.copy(input, resp.getOutputStream());
resp.getOutputStream().flush();
json-string-responseを手動で確認しましたが、同じように見えます。何が問題なのか?