【问题标题】:jquery ajax returns element not foundjquery ajax返回未找到的元素
【发布时间】:2015-05-20 13:17:09
【问题描述】:

我有一个 RESTful 网络服务(java,jersey)来做一些事情。 每个使用 REST 控制器的 url 调用 ajax 请求(GET 或 POST)的函数都可以正常工作......除了最近的,我不知道为什么......我尝试了所有方法并在这个问题上坚持了近三天(写了 3 个不同的函数,从 GET 更改为 POST,用新的路径注释重写了函数,尝试在页面加载时调用 .. 重命名了所有内容),我真的很感谢任何可以帮助我的东西...

如果 url 包含 rest/*,控制器会将其转发给实现所需功能的类..

JS函数

function testFunc() {
    $.ajax({
        url: "rest/name/wut",
        type: "GET",
        contentType: "application/json;charset=utf-8",
        success: function(response) {
            alert("LSKDFJLSDKJFLKSD " + response);
        },
        error: function(response) {
            alert("ma oidaaaa " + JSON.stringify(response));
        }

    });
};

RESTClass 中的 Java 代码...

    @GET
    @Path("/wut")
    @Produces(MediaType.APPLICATION_JSON)
    private String wut() {
        JSONObject json = new JSONObject();
        json.put("print", "wuut");
        return json.toString();
    }

该方法是否在做任何有用的事情都没有关系...它只是返回 404 no element found。 (它甚至没有被调用)因此我在 RESTClass 中尝试了不同的新方法......比如:

@GET
@Path("/wut")
@Produces(MediaType.APPLICATION_JSON)
private String wut() throws IOException {
    URL url = new URL(url);
    StringBuffer response = new StringBuffer();
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
     connection.setRequestMethod("GET");

    BufferedReader in = new BufferedReader(new InputStreamReader(
            connection.getInputStream()));
    String inputLine;

    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    return response.toString();
}

我在另一种方法中使用这个片段,这是有效的。我用“url”替换了真实的 URL 来发布顺便说一句。

我还尝试了不同的媒体类型:WILDCARD、TEXT/PLAIN... 并且只返回一个字符串...

任何人都有任何想法(抱歉英语不好,我真的很绝望,所以我没有做拼写检查,英语不是我的母语:()

【问题讨论】:

    标签: java javascript jquery ajax rest


    【解决方案1】:

    两个想法:

    • 首先,将您的 wut() 方法声明为公开:public String wut()
    • 其次,尝试在浏览器中调用你的方法,例如http://localhost/rest/name/wut,看看会发生什么

    【讨论】:

    • 试过最后一个:Blank Page + Firefox 控制台说:“未声明纯文本文档的字符编码。如果文档包含来自超出 US-ASCII 范围。文件的字符编码需要在传输协议中声明或文件需要使用字节顺序标记作为编码签名。"
    • 将您的方法声明为public 有影响吗?
    • 我是个白痴......公开它是......现在我感觉真的很愚蠢xD非常感谢......
    • 不客气 :-) 别担心,我知道那是什么感觉!
    【解决方案2】:

    我会尝试使用绝对路径: 变化:

    url: "rest/name/wut",
    

    url: "/rest/name/wut",
    

    错误信息告诉我,您的客户端没有尝试服务器提供的地址。

    【讨论】:

    • 试过了,出现异常:请求的资源不可用。
    猜你喜欢
    • 1970-01-01
    • 2010-11-05
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多