0

ある JSP で jQuery ajax コールバックを別の JSP に作成し、データを返すことは可能ですか?

Page1.jsp の $(document).ready 呼び出しで Page2.jsp への ajax 呼び出しを実行しようとしています。「Page2.jsp」によって返される JSON を取得しようとしています。

テストのためにTomcatをローカルで実行しています。JSON がコンソールに出力されていますが、Page1.jsp の元の呼び出しメソッドには返されていません。

何か案は?

Page1.jsp

$(document).ready(function(){

    $.ajax({
        url : 'Page2.jsp',
        dataType: 'json',
        success : function(json) 
        {
            var obj = jQuery.parseJSON(json);
        }
    });
    });

Page2.jsp

<%@page contentType="application/json; charset=UTF-8"%>
<%@page import="org.json.simple.JSONObject"%>
<%

    JSONObject json = new JSONObject();

            json.put("amount","55.00");
            json.put("tax","1.00");

            String jString = JSONObject.toJSONString(json);
            PrintWriter out = response.getWriter();
        out.println(jString);
    out.close();
%>
4

1 に答える 1

1

あなたの質問のコードを試してみましたが、jQuery.parseJSON() コードは次のエラーをスローします:「SyntaxError: JSON.parse:予期しない文字」。デバッグ時に、Tomcat によって生成されたサーブレット コードに out.write("\r\n"); が含まれていることがわかりました。これらの文字が構文エラーの原因であると思われます。

それにもかかわらず、javascript では、返されたオブジェクトを解析せずにドット表記を使用してアクセスしようとしたところ、JSON オブジェクトであるかのようにアクセスできました。返されたオブジェクトを解析する必要はないようです。

JSP コードに加えた唯一の変更は、行 PrintWriter out = response.getWriter(); を削除することでした。および out.close();

于 2013-05-25T17:05:00.180 に答える