0

これを実行しても、「成功」のアラートは発生しません。firebugで確認したところ、retが未定義であることがわかりました。どういう意味ですか?

function checkUni() {

var URL = "http://localhost:8080/GradSchoolApp/test.jsp";

var ret = $.getJSON(URL, function(data, textStatus) {
    alert("success");
});
}

編集:

これはtest.jspbtwです

<%@ page language="java" contentType="application/json; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="java.util.*, net.sf.json.JSONObject"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
response.setContentType("application/json");
JSONObject jo = new JSONObject();
jo.put("location", "1");
jo.put("name", "someUni");
out.println(jo);
out.flush();

%>
</body>
</html>
4

3 に答える 3

1

AJAX呼び出しは機能しませんでした。確認すべき点がいくつかありますが、URLは正しいですか?アプリケーションサーバーのログをチェックして、呼び出しに到達したことがあるかどうかを確認しましたか。AJAX呼び出しが成功した場合、HTTPコードのfirebugをチェックできますか?

編集:

(text/jsonからapplication/jsonに変更)ありがとうBergi

JSP:

<%@ page contentType="application/json" %>

Javaサーブレット:

response.setContentType("application/json");
于 2012-05-30T04:03:36.723 に答える
0

retスコープは関数に限定されているため、関数内のコードのみが関数にアクセスできます。私の推測では、ローカルコンピュータのポート8080でWebサーバーが実行されていないか、他の理由でURLが無効になっています。.ajaxエラーに関するコールバックも取得したい場合は試してください( fiddle):

function checkUni() {
    var URL = "http://localhost:8080/GradSchoolApp/test.jsp";

    var ret = $.ajax(
    {
        url: URL,
        success: function(data, textStatus) {
            alert('success!');
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert('Error "' + textStatus + '": ' + errorThrown);
        }
    });
}

jsonも確認することをお勧めします。getJsonページでは、引用符で囲まれたプロパティ名などの厳密な要件を含め、無効なjsonでサイレントに失敗することが警告されます。自分で使用.getして逆シリアル化してみてください。

于 2012-05-30T04:02:04.970 に答える
0

まず、「。jsp」ファイルがjsonデータを返すかどうかを確認します

コールバックにもう1つのパラメータを使用します

getJSON: function( url, data, callback ) {
    return jQuery.get( url, data, callback, "json" );
}

このようなユーザー

function checkUni() {
    var URL = "http://localhost:8080/GradSchoolApp/test.jsp";
    var ret = $.getJSON(URL,"",function(data){
        alert("success");
    });
}
于 2012-05-30T04:10:07.637 に答える