Java webapp 响应我的登录页面的源代码

标签 java json spring web-services

我有一个 Java Web 应用程序,它发布一个以 JSON 格式返回对象的服务,并且我有另一个 Java Web 应用程序只是为了通过 JSONP 调用使用该服务并显示响应。在我的本地计算机中,它工作正常,但现在我想在 Web 环境中测试它(在我的例子中为 Layershift),我无法获取 JSON 对象。我在 Chrome 开发者工具上没有看到任何错误,但是当我查看“响应”选项卡(在“网络”选项中)时,我看到了应用程序登录页面的源代码。让我向你展示我的代码
具有服务的 Controller :

@RestController
public class MyController {
@RequestMapping(value="/myservice/get/{somevar}")
public MappingJacksonValue getMyObject (@RequestParam String callback, @PathVariable String somevar, HttpServletRequest request, HttpServletResponse response) {
    MyObject obj = new MyObject();
    //some logic
    MappingJacksonValue value = new MappingJacksonValue(obj);
    value.setJsonpFunction(callback);
    return value;
}

}

调用服务的javascript代码:

$.fn.callWithJsonP = function(somevar) {
var url = "/myservice/get/" + somevar + "?callback=myCallback";
$.getJSON(url, function(data) {
    if (data.value.status == "OK") {
        //shows the data contained
    }
});
}

Apache 配置(添加以避免 CORS 错误),存在于两个应用程序中

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Header always unset X-Frame-Options

这在很多本地计算机上都能完美运行(除了 Apache,我不在本地使用它),但正如我所说,在 Web 环境中我收到了登录页面的源代码。在“ header ”选项卡中,我可以看到 Apache 中添加的 header ,并且响应的状态代码正常,有关于发生了什么情况的线索吗?
亲切的问候

更新
我已经删除了 Apache Web 服务器,甚至使用 Postman 测试了 Web 服务(意味着没有第二个应用程序),结果仍然相同。我尝试将 @RestController 更改为 @Controller 并返回 MyObject 的实例(而不是 MappingJacksonValue),但没有结果,请帮助我

最佳答案

我可能离这里很远,但是您是否有一个 Servlet 过滤器或 Web 应用程序配置的其他部分,在您的 REST 框架能够将其映射到您的端点之前将您的 get 请求路由到您的登录页面?我通常使用 Jersey,所以我不熟悉 Spring 的 RestController,但我认为它正在做类似的事情 - 路由与 java 代码匹配的 URL。如果您看到登录页面作为响应,听起来好像有什么东西正在干扰并试图在 Spring 定向到您的端点方法之前强制用户登录。

关于Java webapp 响应我的登录页面的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40350807/

相关文章:

java - Spring RestTemplate Post 收到 500 内部服务器错误

java - TopScoreDocCollector 类型中的方法 create (int, int) 无法使用参数 (int, boolean)

java - Android在其他类的数组上获取特定值

java - 公共(public) API 方法应该返回 InputStream 还是 byte[]

javascript - 如何使用 jquery ajax 将 POST 数据发送到 PHP 函数

c++ - 现代 C++ 线程安全的 JSON?

java - RabbitMQ 和 hibernate : Unable to commit against JDBC Connection

java - 尝试在另一个方法中运行方法时出现错误 "This method requires a body instead of a semicolon"

json - 将对象从 MongoDB 游标流式传输到 Nodejs HTTP 响应

Spring / chalice ;属性编辑器究竟是如何使用的?