首页 > 解决方案 > Okta AJAX 出错 - ExtJs 中没有“Access-Control-Allow-Origin”标头

问题描述

Ext.Ajax.request({
        url: 'https://dev-516799.oktapreview.com/api/v1/users?limit=200',
        method: 'GET',
        Accept: 'application/json',
        'Access-Control-Allow-Origin': '*',
        headers: {
            'Authorization': 'SSWS Token' 
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*',
            //'Access-Control-Allow-Methods': 'GET'
        },
        scope: this,
        cleanup: function () {
            view.setLoading(false);
        },
        success: function (response) {
}

但我收到错误,因为“对预检请求的响应未通过访问控制检查:请求的资源上不存在‘Access-Control-Allow-Origin’标头”

标签: extjsextjs4.1oktaokta-api

解决方案


Access-control: Allow-Origin标头是一项安全功能,必须在来自服务器的回复中启用,而不是在对服务器的请求中启用。

示例:ExtJS - 向 AJAX 存储添加标头

在你的情况下,你是在 Okta 的摆布之下。如果您向他们提供允许的 URL,他们有一些支持 CORS 的 API,而另一些则不支持。您无法直接从 JavaScript 代码访问 Okta API,除非 API 被标记为启用 CORS,并且您已将 URL 添加到 Okta 管理面板中启用 CORS 的 URL 列表中。如果您需要未标记的 API 或从任意 URL 访问,您可能必须在自己的服务器后端创建一个包装器,将来自前端的请求中继到 Okta 服务器。


推荐阅读