【发布时间】: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