预检没有成功

时间:2016-11-30 00:01:50

标签: javascript java jquery ajax cors

我正在使用我的第一个Web应用程序。我有一个使用Jersey的Java服务器应用程序用于RESTful API,我有一个JavaScript(JQuery)驱动的客户端应用程序。我是一位经验丰富的Java开发人员,但这是我第一次使用JavaScript和CORS。

首先,这里是过滤器,它将CORS标头添加到通过我的服务器的所有响应中。我已经在调试模式下运行应用程序,我知道这个过滤器正在正常执行。

@Provider
public class CrossOriginHeaderFilter implements ContainerResponseFilter{

    @Override
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {

        MultivaluedMap<String,Object> headers = responseContext.getHeaders();
        headers.add("Access-Control-Allow-Origin", "*"); //TODO specify the origin here
        headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS");
        headers.add("Access-Control-Allow-Headers", "*"); //TODO figure out what headers to allow
        headers.add("Access-Control-Allow-Credentials", true);

    }
}

这是我用来调用服务器的JQuery Ajax调用:

$.ajax({
                url: "http://localhost:8080/orgapi/auth",
                type: "POST",
                headers: {
                    "Access-Control-Request-Method": "POST"
                },
                crossOrigin: true,
                data: jsonMsg,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(){
                    alert("Login successful");
                },
                error: function(jqXHR, textStatus, errorThrown){
                    console.log(jqXHR);
                    alert(textStatus);
                    console.log(errorThrown);
                }
            });

我一直在阅读关于CORS和所有这些的所有内容,我现在就被卡住了。我不知道自己做错了什么,但我愿意打赌我的标题配置错误。

如果有人可以帮助我,我们将不胜感激。感谢。

0 个答案:

没有答案