【问题标题】:CORS Not working (failed)net::ERR_FAILED)CORS 不工作(失败)net::ERR_FAILED)
【发布时间】:2021-01-08 06:59:39
【问题描述】:

请帮助我。这不起作用。调用此方法后,短信发送正确但显示错误 this (failed)net::ERR_FAILED)

function sendSms(passWord, userName, smsRate, mType, MsgType) {
    var getMessage = $('.composeSMS').val(),
        number = '88'+$('[name="tags-input"]').val();
            var convateMessage = setConvertedMessage(getMessage);
        $.ajax({
            type: 'get',
            url: 'https://api.example.com:8443/sms/sms?',
            headers: {  
                    'Content-Type': 'application/json',
                    'Accept': 'application/json',
                    'Access-Control-Allow-Credentials': true,
                    'Access-Control-Allow-Headers': '*',
                    'Access-Control-Allow-Methods': 'GET, PUT, POST, DELETE, HEAD, OPTIONS, PATCH',
                    'Access-Control-Allow-Origin': '*',
                    'Access-Control-Expose-Headers': '*',
                    'Allow': 'GET, HEAD, POST, TRACE, OPTIONS',
            },
            data: { source: mType, username: userName, password: passWord, type: 2, destination: number, message: convateMessage,format: "json"
            },
            success: function( data ) {
                conosle.log(data);               

            },
        });
}

Error screenshort

【问题讨论】:

    标签: javascript jquery cors


    【解决方案1】:

    CORS 不受消费者(客户端浏览器)控制,而是由提供者(您要连接的跨源服务器)控制。出于安全原因引入了 CORS,如果添加一些标头完全禁用服务器规避此安全措施的能力。

    首先要从您的请求中删除 Access-Control-* 标头。这些是 response 标头,将它们添加到 request 可能会导致正常运行的跨源请求失败 - 别担心,这是一个新手错误,你会至少每天在堆栈溢出时看到这个!

    添加大多数标头将触发 OPTIONS 飞行前检查 - 如果服务器不期望这样的请求,则会失败

    如果在您的请求正确且其中没有额外的(意外)标头后,请求仍然失败,请检查响应标头 - 如果响应标头中没有 Access-Control-Allow-Origin,则您正在访问的服务器不允许浏览器发出这样的请求

    然后解决方案是使用服务器端代码从您自己的服务器发出请求

    由于您没有提到任何有关您的服务器的内容,让我尝试使用一些伪代码来帮助您

    在服务器上你会有类似的东西

    handle '/sms'
        incoming parameters: source, username, password, type, destination, message, format
        response = get(url { source, username, password, type, destination, message, format})
        return response to client
    

    【讨论】:

    • 你能解决这个问题吗?如果你解决这个问题,我会付钱
    • @MdAlaminSoriya 恐怕我不能这样做,原因有几个。 a)我不知道您使用的是什么 API,也许有一种方法可以让 CORS 使用它。 b)如果不是,我不知道您的服务器端,例如,您在服务器端使用什么语言(PHP?节点?pythin?其他东西)。这就是我发布“伪”代码的原因,以大致了解您需要在服务器上做什么
    猜你喜欢
    • 2020-10-21
    • 2020-06-23
    • 1970-01-01
    • 2014-11-04
    • 2018-05-29
    • 2021-03-28
    • 1970-01-01
    • 2021-07-20
    相关资源
    最近更新 更多