繁体   English   中英

如何使用GET方法基本身份验证将Web API调用到javascript中的jquery()中

[英]How to call web API with GET method basic authentication into jquery() in javascript

您好,我正在使用此方法读取此api,从而导致CORS错误。 我用chrome添加了CORS插件,但是它也没有来。 请让我知道如何解决这些错误。

文本:

 function NoCors() {
        debugger;
        var uName = "*****";
        var passwrd = "*****";
        document.write("Enter1");
        var url = 'http://219.90.67.163:8207/api/Info/getgismeterdata'
        $.ajax({
            type: 'GET',
            url: url,
            crossDomain: true,
            //Access-Control-Allow-Credentials: true,
            contentType: 'json',
            datatype: "application/json",
            headers: {
                "Authorization": "Basic QXBpVXNlcjpBcGlQYXNz",
            },

            beforeSend: function (xhr) {
                xhr.setRequestHeader('Authorization', "Basic " + btoa(uName + ":" + passwrd));
            },
            success: function (data) {
                debugger;
                console.log("data")
                //Success block 
            },
            error: function (xhr, ajaxOptions, throwError) {
                //Error block 
            },
        });
    }

控制台中的错误:1.无法加载资源:服务器以状态405(不允许的方法)进行了响应。2.在“ http://219.90.67.163:8207/api/Info/getgismeterdata ”中访问XMLHttpRequest http:// localhost:50362 '已被CORS策略阻止:对预检请求的响应未通过访问控制检查:它没有HTTP正常状态。

在将GET请求发送到服务器之前,浏览器会自动发送并预检OPTIONS请求,并且您的服务器不允许使用此方法。 您需要在服务器端启用OPTIONS方法支持(219.90.67.163)

  1. 您是否使用承载令牌认证? 请求标题尝试这个

    标头:{“ Authorization”:“ Bearer QXBpVXNlcjpBcGlQYXNz”,},

  2. 您必须在Web API中设置CORS

https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api

您使用的CORS插件仅适用于简单请求

由于您正在设置Authorization标头,因此您将发出插件无法处理的预检请求

您需要使用其他方法来处理“相同来源策略”。 理想情况下,这将是您向其发出HTTP请求的服务器上对CORS的适当支持,但此答案的末尾列出了一些其他选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM