【发布时间】:2012-09-27 14:53:50
【问题描述】:
我在服务器上托管了两个 Web 应用程序。从一个我试图做 $.post 到第二个应用程序(spring mvc3)。我能够成功点击第二个应用程序的 url,但我没有得到 ajax 调用的响应。
App1 JS 代码 (http://localhost:7777/app1/test.html) -
var serialisedFormData = $("form").serialize();
$.post("http://localhost:8080/app2/doSomething", serialisedFormData, function (data) {
alert("job done");
}, "json");
App2 Java 代码 -
@RequestMapping(value = "/doSomething")
public @ResponseBody String doSomething(HttpServletRequest request,
@RequestParam("d") String data) {
try {
... do something here ...
return "done";
}
catch (Exception e) {
logger.debug("Exception occured when doing something", e);
return "failure";
}
}
【问题讨论】:
-
这里没有足够的信息来帮助您。当您在浏览器之外执行请求时,
POST /app2/doSomething会返回什么,例如在命令行中使用curl?你怎么知道你没有得到回复 - 你的响应处理程序似乎只发出警报。您的浏览器的开发工具会向您显示什么作为对/app2/doSomething的 HTTP 调用返回的响应? -
它们是否部署在同一个应用服务器实例中并且具有相同的域 - 否则可能只是浏览器阻止了跨域请求。
-
也许您的
post呼叫缺少“.html”?$.post("http://localhost:8080/app2/doSomething.html... -
@BijuKunjummen - 是的,我也担心这是一个跨域请求。在这种情况下有什么解决方案?
标签: java jquery spring-mvc