Javascript 使用JQuery和CORS的Ajax

Javascript 使用JQuery和CORS的Ajax,javascript,jquery,ajax,cross-domain,Javascript,Jquery,Ajax,Cross Domain,在处理CORS时,使用JQuery调用Ajax请求的正确方法是什么 我使用以下JavaScript代码进行ajax调用: $.ajax({ type: "GET", url: setup.services_domain + "/?type=ajax_cart", data: g, dataType: "html", crossDomain: true,

在处理CORS时,使用JQuery调用Ajax请求的正确方法是什么

我使用以下JavaScript代码进行ajax调用:

        $.ajax({
            type: "GET",
            url: setup.services_domain + "/?type=ajax_cart",
            data: g,
            dataType: "html",
            crossDomain: true,
            headers: {
                  "Access-Control-Allow-Origin":"*"
              },
            xhrFields: { withCredentials: true },
            encode: !0
        }).done(function (a) {

        })
我总是会出错:

Access to XMLHttpRequest at 'http://www.services.mysite.sk/?type=ajax_cart&action=add&product_number=462374ML&quantity=1' from origin 'http://www.mysite.sk' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
主站点是
http://www.mysite.sk
这是shop,我有所有Ajax和API调用的子域
http://www.services.mysite.sk
呼叫服务

主站点和服务都设置了以下标题:

 Header set Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
 Header set Access-Control-Allow-Origin "*"
 Header set Access-Control-Allow-Headers "*"
网站运行在同一台服务器上,Debian9和Apache2作为Web服务器


我知道这些设置不适合生产使用,但我在dev服务器上测试了它,我对这些Ajax调用有问题,我不知道它有什么问题。

您是在请求http://还是https://域?可能您正在请求http域,但被重定向到https。请参阅@Tim我正在请求HTTP,对于开发服务器,我们已禁用HTTPS,因此没有重定向到HTTPS。如果CORS设置正确,则无需更改JS中的任何内容。还要注意,
访问控制
头需要在响应中,这样您就可以从jQuery AJAX请求中删除。如果这对您不起作用,那么您需要调试您的服务器逻辑。@RoryMcCrossan如果我从JS中删除
访问控制
,那么我会得到错误:
请求的资源上不存在“访问控制允许来源”头。
这是服务器端错误,不是JS错误。这只是一个巧合,它出现在您从请求中删除它之后。检查dev tools中的响应并确定它有哪些标头。