wso2 api manager TypeError: NetworkError when attempting to fetch resource
wso2 api manager TypeError: NetworkError when attempting to fetch resource
我在 wso2 api manager 3.2.0 devportal 中遇到以下错误,但是当调用 Postman 或 Curl 不安全时,没关系。
wso2 api manager TypeError: NetworkError when attempting to fetch resource
在浏览器中
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource
在发布者 portal > Runtime Configuration
中:
启用 CROS 配置
默认情况下,网络浏览器应用 same-origin 策略来避免不同来源之间的交互。 CORS 定义了一种方式,浏览器和服务器可以通过这种方式进行交互,以确定允许 cross-origin 请求是否安全。这就是您在浏览器中收到下面提到的错误的原因。
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource
你可以用两种方法解决这个问题。具体如下。
- 全局启用 CORS
- 根据 API
启用 CORS
全局启用 CORS
正如标题所说,您可以全局 enable/disbale CORS 配置,它将应用于所有 API。你可以通过在 /repository/conf/deployment.toml 文件中添加以下配置来实现。默认启用 CORS 配置。
[apim.cors]
enable = true
allow_origins = "*"
allow_methods = ["GET","PUT","POST","DELETE","PATCH","OPTIONS"]
allow_headers = ["authorization","Access-Control-Allow-Origin","Content-Type","SOAPAction","apikey","testkey"]
allow_credentials = false
在 API 网关应用此配置后,它将影响网关服务的所有 API 呼叫。
根据 API
启用 CORS
您也可以通过发布者门户 enable/disable CORS 配置。
为此,登录发布者门户 --> select API --> 运行时配置 --> 在 CORS 配置下启用切换按钮,为 API 启用 CORS .
注意:您需要先全局启用 CORS,然后再启用 CORS Per API。
使用 Swagger 或 Open API 定义创建新的 API 时,可以通过定义 API-M 支持的 Open API 扩展来设置 CORS “x-wso2-cors”.
x-wso2-cors:
corsConfigurationEnabled: true
accessControlAllowOrigins:
- "*"
accessControlAllowCredentials: false
accessControlAllowHeaders:
- "authorization"
- "Access-Control-Allow-Origin"
- "Content-Type"
- "SOAPAction"
- "apikey"
accessControlAllowMethods:
- "GET"
- "PUT"
- "POST"
- "DELETE"
- "PATCH"
- "OPTIONS"
我在 wso2 api manager 3.2.0 devportal 中遇到以下错误,但是当调用 Postman 或 Curl 不安全时,没关系。
wso2 api manager TypeError: NetworkError when attempting to fetch resource
在浏览器中
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource
在发布者 portal > Runtime Configuration
中:
启用 CROS 配置
默认情况下,网络浏览器应用 same-origin 策略来避免不同来源之间的交互。 CORS 定义了一种方式,浏览器和服务器可以通过这种方式进行交互,以确定允许 cross-origin 请求是否安全。这就是您在浏览器中收到下面提到的错误的原因。
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource
你可以用两种方法解决这个问题。具体如下。
- 全局启用 CORS
- 根据 API 启用 CORS
全局启用 CORS
正如标题所说,您可以全局 enable/disbale CORS 配置,它将应用于所有 API。你可以通过在 /repository/conf/deployment.toml 文件中添加以下配置来实现。默认启用 CORS 配置。
[apim.cors]
enable = true
allow_origins = "*"
allow_methods = ["GET","PUT","POST","DELETE","PATCH","OPTIONS"]
allow_headers = ["authorization","Access-Control-Allow-Origin","Content-Type","SOAPAction","apikey","testkey"]
allow_credentials = false
在 API 网关应用此配置后,它将影响网关服务的所有 API 呼叫。
根据 API
启用 CORS您也可以通过发布者门户 enable/disable CORS 配置。 为此,登录发布者门户 --> select API --> 运行时配置 --> 在 CORS 配置下启用切换按钮,为 API 启用 CORS .
注意:您需要先全局启用 CORS,然后再启用 CORS Per API。
使用 Swagger 或 Open API 定义创建新的 API 时,可以通过定义 API-M 支持的 Open API 扩展来设置 CORS “x-wso2-cors”.
x-wso2-cors:
corsConfigurationEnabled: true
accessControlAllowOrigins:
- "*"
accessControlAllowCredentials: false
accessControlAllowHeaders:
- "authorization"
- "Access-Control-Allow-Origin"
- "Content-Type"
- "SOAPAction"
- "apikey"
accessControlAllowMethods:
- "GET"
- "PUT"
- "POST"
- "DELETE"
- "PATCH"
- "OPTIONS"