CORS问题httpclient角度-Tomcat-SOAP请求

时间:2020-07-15 13:12:56

标签: cordova tomcat ionic-framework cors httpclient

我正在尝试向Tomcat 8.5发出发布请求。

它具有以下CORS配置:

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
    <init-param>
        <param-name>cors.allowed.origins</param-name>
        <param-value>ionic://localhost,http://localhost</param-value>
    </init-param>
    <init-param>
        <param-name>cors.allowed.methods</param-name>
        <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
    </init-param>
    <init-param>
        <param-name>cors.allowed.headers</param-name>
        <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
    </init-param>
    <init-param>
        <param-name>cors.exposed.headers</param-name>
        <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
    </init-param>
    <init-param>
        <param-name>cors.support.credentials</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>cors.preflight.maxage</param-name>
        <param-value>10</param-value>
    </init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

这是我的有角度的httpclient(5.2.11)请求:

this.http.post(url, xml, {
        withCredentials: true,
        responseType: 'text',
        headers: headers,
        observe: 'response'
      })
        .toPromise()
        .then(response => {

          console.warn('RAW');
          console.warn(JSON.stringify(response));
})

请求角度HTTP标头对象打印:

{"Content-Type":"text/xml; charset=utf-8","SOAPAction":"\"\"","Cache-control":"no-cache"}

Chrome检查器显示此信息:

    General:
    
    Request URL: myurl
    Request Method: OPTIONS
    Status Code: 403 
    Remote Address: ip
    Referrer Policy: no-referrer-when-downgrade
    
    Response Headers:
Connection: keep-alive
Content-Length: 0
Content-Type: text/plain
Date: Wed, 15 Jul 2020 13:17:45 GMT
Keep-Alive: timeout=60
Server: -

    Request Headers:
    
    Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: es-ES,es;q=0.9,pl-SP;q=0.8,pl;q=0.7,en-US;q=0.6,en;q=0.5
Access-Control-Request-Headers: cache-control,content-type,soapaction
Access-Control-Request-Method: POST
Cache-Control: no-cache
Connection: keep-alive
Host: myurl
Origin: http://localhost
Pragma: no-cache
Referer: http://localhost/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
User-Agent: Mozilla/5.0 (Linux; Android 9; SM-J530F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36
X-Requested-With: bundleid

响应错误是这样的:

从源“ http:// localhost”访问“ myurl”处的XMLHttpRequest具有 被CORS政策封锁:未对预检请求做出回应 通过访问控制检查:没有“ Access-Control-Allow-Origin”标头 出现在请求的资源上。

更多数据:

Ionic framework 3
cordova-android 8.1.0
cordova-plugin-ionic-webview: 4.2.1
angular httpclient 5.2.11
app tested into Samsung android 9 device

为什么如果将cors域设置为tomcat,由于cors块而仍然无法连接到我的服务?

0 个答案:

没有答案