Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX和Azure反向代理的CORS问题_Ajax_Azure_Proxy_Cors - Fatal编程技术网

AJAX和Azure反向代理的CORS问题

AJAX和Azure反向代理的CORS问题,ajax,azure,proxy,cors,Ajax,Azure,Proxy,Cors,我和CORS有问题。 我通过域B从域A中的SPA调用AJAX到域C(我也是)中的RESTAPI,我将域B设置为反向代理和负载平衡器。 这三个应用程序都部署到Azure Web应用程序 从A到C的呼叫可以直接工作,没有问题。 但是从A通过B打到C的电话将不起作用 允许从A使用门户在B和C上使用CORS。 允许从B使用门户在C上使用CORS API服务器C的Web.config具有以下功能: <httpProtocol> <customHeaders>

我和CORS有问题。 我通过域B从域A中的SPA调用AJAX到域C(我也是)中的RESTAPI,我将域B设置为反向代理和负载平衡器。 这三个应用程序都部署到Azure Web应用程序

从A到C的呼叫可以直接工作,没有问题。 但是从A通过B打到C的电话将不起作用

允许从A使用门户在B和C上使用CORS。 允许从B使用门户在C上使用CORS

API服务器C的Web.config具有以下功能:

    <httpProtocol>
      <customHeaders>
          <add name="Access-Control-Allow-Origin" value="*" />
          <add name="Access-Control-Allow-Headers" value="Content-Type" />
          <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS" />
      </customHeaders>
   </httpProtocol>

因此,我的理解是API服务器必须允许SPA发出请求,这就是我认为上面几行所做的。那么有人知道这是怎么回事吗?

您可以在应用程序服务中控制CORS,并且该设置可能会覆盖您的web.config。在应用程序服务菜单中,向下滚动至API部分,会出现CORS菜单


由于您正在指定某些允许的标题和方法,该部分可能不适用于您,但如果您为*添加记录,然后将其删除,则应开始使用基于web.config的CORS处理。

您可以在应用程序服务中控制CORS,并且该设置可能会覆盖您的web.config。在应用程序服务菜单中,向下滚动至API部分,会出现CORS菜单

由于您正在指定某些允许的头和方法,该节可能不适用于您,但如果您为*添加记录,然后将其删除,则应开始使用基于web.config的CORS处理

    Response to preflight request doesn't pass access control check: 
    No 'Access-Control-Allow-Origin' header is present on the requested resource. 
    Origin 'null' is therefore not allowed access. 
    The response had HTTP status code 400.