跨域Ajax请求WSO2是

跨域Ajax请求WSO2是,ajax,rest,wso2,cors,wso2is,Ajax,Rest,Wso2,Cors,Wso2is,我收到了此错误:“XMLHttpRequest无法加载。对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源站”标头。因此,不允许访问源站“null” 如何配置WSO2来处理它?或者有替代品吗 WSO2 API管理器()也存在类似的问题。但是WSO2 is中没有这样的目录“/repository/deployment/server/synapse configs/”。我认为is的令牌API不会返回CORS头。要使其正常工作,您可以通过API管理器将API的令牌前置。默认情

我收到了此错误:“XMLHttpRequest无法加载。对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源站”标头。因此,不允许访问源站“null”

如何配置WSO2来处理它?或者有替代品吗


WSO2 API管理器()也存在类似的问题。但是WSO2 is中没有这样的目录“/repository/deployment/server/synapse configs/”。

我认为is的令牌API不会返回CORS头。要使其正常工作,您可以通过API管理器将API的令牌前置。默认情况下,APIM在您在其中创建的所有RESTAPI中返回CORS头

事实上,API Manager提供了一个API(即
https://localhost:8243/token
)的令牌API(即
https://localhost:9443/oauth2/token
)(注意:APIM中安装了某些IS功能)。但它也不会返回CORS头。要使其返回CORS头,您应该遵循您提到的SO链接


另一个简单的选项是,如果您只需要CORS头,您可以简单地通过另一个在响应中返回CORS头的定制服务来前置is的令牌API

当Identity Server上未启用跨源资源共享(CORS)时,这是预期的行为。事实上,您可以为Identity Server启用CORS。检查[1]如何操作


[1]

谢谢您的快速回复。这正是我想要的。非常感谢。
curl -v -X POST -H "Authorization: Basic <base64 encoded client id:client secret value>" -k -d "grant_type=password&username=<username>&password=<password>" -H "Content-Type:application/x-www-form-urlencoded" https://localhost:9443/oauth2/token 
  $.ajax({
      type: 'POST',
      data: 'grant_type=password&username=admin&password=admin',
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Authorization': 'Basic  Z0hLUlA3eThYTmJydl9JR1pJemxDQ1VJQlo0YTozT2VLaUlmUVViMk1yZzZ2YU5uQVFsWFpDU29h'
      },
      url: 'https://localhost:9443/oauth2/token',
      success: function(data) {
        console.log(data);
      }
    })
    };