JQuery GET请求返回缺少的CORS源

时间:2018-01-11 13:55:06

标签: jquery asp.net asp.net-mvc cors web-config

好的,我有3台服务器需要一起通信才能获得GET请求。但我不断得到原点缺失错误,我可以看到我想在邮递员中收到的信息(所以我知道我的网址和传递信息的工作原理)。

  1. 具有请求启动的公共网站的服务器(JQuery),这是在不同的域上,然后是接下来的2台服务器。
  2. 带有应用程序的安全服务器,以确保数据库与公共网站没有直接链接。
  3. 与服务器2应用程序+主应用程序相同的服务器&数据库(我已经知道这个服务器与cors无关)
  4. JQuery

    function GetData(nummer, insz) {
        showLoader(true);
        var func = function (host) {
            $.ajax({
                type: "GET",
                url: host + "/api/GetList/" + number + "/" + version + "/" + typeId + "/" + extraPriority,
                error: function () { alert('ERROR'); showLoader(false); showEmptyTableMessage(true); }
            }).then(function (data) {
                drawTable(data);
                showLoader(false);
            });
        };
    
        func(URLTOSERVER);
    
        FindServerUrlAsync(func);
    }
    
    function FindServerUrlAsync(callback) {
        $.ajax({
            type: "GET",
            url: "/settings/ServerType"
        }).then(function (serverType) {
            var isDmz = (serverType === 'Dmz');
            if (isDmz) {
                $.ajax({
                    type: "GET",
                    url: "/settings/ServerUrl"
                }).then(function (serverUrl) {
                    callback(serverUrl);
                });
            } else {
                callback("");
            }
        });
    }
    

    第二台服务器进入一个asp.net应用程序控制器(mvc),它使用来自数据库的httpclient的异步请求。

    的web.config

    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
      </customHeaders>
    </httpProtocol>
    

    ASP.NET启动

    var corsBuilder = new CorsPolicyBuilder();
    corsBuilder.AllowAnyHeader();
    corsBuilder.AllowAnyMethod();
    corsBuilder.AllowAnyOrigin();
    corsBuilder.AllowCredentials();
    
    services.AddCors(options =>
    {
        options.AddPolicy("AllowAll", corsBuilder.Build());
    });
    
    app.UseCors("AllowAll");
    

    请求仅在不同的方法/操作(显然是服务器)中进入相同的asp.net应用程序控制器。 web.config没有httprotocol(因为我已经意识到它是不必要的)。

    我一直在看这个问题。但我似乎无法让它发挥作用。

    被修改

0 个答案:

没有答案