当前位置: 首页 > 知识库问答 >
问题:

CORS策略已阻止CORS从源站访问X上的XMLHttpRequest

贺博厚
2023-03-14

CORS策略已阻止CORS从源站对X处XMLHttpRequest的访问:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。

嗨,我正在努力解决我的问题与CORS拒绝我的Vue组件与外部API与axios的交互,因为它返回此错误。我尝试了使用Barryvdh的Cors头支持和制作中间件和自定义路由。这根本行不通。Barryvdh回购中README. md中提到的一切都已经完成,不幸的是,这个问题不会通过任何必要的手段得到解决。

这是代码,尽管我认为没有必要显示,因为它与回购中提到的完全相同;

在Kernel.php内部:

protected $middleware = [
    \Barryvdh\Cors\HandleCors::class,
inside app.php (providers array):

Barryvdh\Cors\ServiceProvider::class,

配置/cors.php

'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedHeaders' => ['*'],
'allowedMethods' => ['*'], // ex: ['GET', 'POST', 'PUT',  'DELETE']
'exposedHeaders' => [],
'maxAge' => 0,

这是axios get call(我已经用'TOKEN'替换了我的令牌)

    methods: {
        loadWeatherData: function() {
            axios.get( 'http://api.openweathermap.org/data/2.5/weather?q=London&mode=json&units=metric&appid=TOKEN' )
                .then( function( response ) {
                    console.log( 'radi' );
            }).catch( errors => {
                console.log( errors+' ne radi');
            });
        }
    },

我把作曲家甩了,没什么影响解决问题。我做错什么了吗?这个问题有什么解决办法吗?提前谢谢!

共有1个答案

东门修能
2023-03-14

这里的问题似乎是axios喜欢发送自己的默认标头,这些标头没有通过外部请求的预飞行检查。要解决这个问题,您需要删除违规的标题。

我能够重新创建您的错误,并使用下面的代码绕过CORS问题。

let url = 'https://api.openweathermap.org/data/2.5/weather?q=London&mode=json&units=metric&appid=TOKEN';

// create a new instance so we don't delete the headers for other requests
let instance = axios.create();

// delete headers if existing
delete instance.defaults.headers.common['Accept'];
delete instance.defaults.headers.common['X-Requested-With'];
delete instance.defaults.headers.common['X-CSRF-TOKEN'];

// use the new axios instance to make your get request
instance.get(url)
    .then(function(response) {
        console.log(response);
    }).catch( errors => {
        console.log(errors + ' ne radi');
    });

希望这对你有帮助,祝你好运!

 类似资料:
  • 我正试图用axios发送请求,但我有CORS问题,这是我的nuxt.config.js 这是我的服务 我试图根据nuxt文档设置代理,但如果我使用类似https://cors-anywhere.herokuapp.com/ 它会起作用,但nuxt代理为什么不起作用呢?我认为这不是正确的方法。我必须使用cookie还是中间件?

  • 当我尝试在角7网络应用程序中执行补丁请求时,我遇到了一个问题。在我的后端,我有: 在我的前端服务中,我: 错误是: 我能做什么?谢谢

  • 有点晚了,但我记得我最终通过在后端的配置中设置来解决这个问题。 完全偶然地,我注意到如果我在前端的客户端中设置,一切都正常工作。然而,将其切换到不断抛出错误。然后我把两个和两个放在一起,在后端设置,一切都按预期工作。 我的应用程序使用cookie,所以必须这样做。 这可能是重复的,但我没有找到与我的问题相关的线索。 我正在进行以下API调用: 这会引发一个错误: 当我将我的应用程序部署到Herok

  • 我有一个。NET核心应用程序,它有一个REST API被一个角客户机使用,但遇到了CORS问题。 但仍在客户端(运行在本地端口4200上)中获取错误: CORS策略阻止从来源“HTTP://localhost:4200”访问位于“HTTP://localhost/myapi/api/table”的XMLHttpRequest:对飞行前请求的响应没有通过访问控制检查:它没有HTTP ok状态。

  • 我试图用javascript演示一个api调用,以获得Json结果。以下是我所做的: 但是当我运行它时,我得到了一个错误: CORS策略阻止从http://127.0.0.1:8080/activiti-rest/service/form/form-data?taskId=21159http://localhost访问XMLHttpRequest:对预试请求的响应不通过权限改造检查:请求的资源上不