【问题标题】:jquery+ springboot, CORS issuejquery spring boot,CORS问题
【发布时间】:2018-07-12 16:10:46
【问题描述】:

我的前端页面是使用 jquery 3.2.1 开发的,像这样由 npm 运行

"start": "http-server -a localhost -p 8000 -P http://localhost:8080 -c-1 --cors ./app"

我的http请求示例:

$(function(){

        $.ajax({
            url: 'http://localhost:8080/api/partner/all',
            type:'get',
            dataType:'text',
            success:function(data){
                alert(data);
            }
        });
    }
)

我得到了 cors 错误,像这样

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:8000' 不允许访问。响应的 HTTP 状态代码为 403。

然后我为 cors 支持添加过滤器

response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "*");
        response.setHeader("Access-Control-Max-Age", "1728000");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");

现在只有一个错误是:

GEThttp://localhost:8080/api/partner/all403()

我该如何解决这个问题?

【问题讨论】:

    标签: javascript jquery ajax spring-boot cors


    【解决方案1】:

    Access-Control-Allow-Origin: *Access-Control-Allow-Credentials: true 不兼容。

    如果您需要传递Access-Control-Allow-Credentials: true(因为您需要cookie/身份验证支持),则必须指定Access-Control-Allow-Origin: {value-of-Origin-request-header}(在您的示例中,您可以将其硬编码为Access-Control-Allow-Origin: http://localhost:8000) .

    【讨论】:

    • 嗯 - 为什么投反对票?由于您的两个 CORS 响应标头之间不兼容,您的代码将无法正常工作。这可能会导致问题...
    猜你喜欢
    • 2021-04-11
    • 2016-07-09
    • 1970-01-01
    • 2020-09-08
    • 2019-05-17
    • 2017-09-09
    • 2017-04-13
    • 2018-10-30
    相关资源
    最近更新 更多