`

Access to XMLHttpRequest has been blocked by CORS policy: Request header field l

阅读更多

问题报错:

Access to XMLHttpRequest at 'http://localhost:3030/api/asset-list' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field lang is not allowed by Access-Control-Allow-Headers in preflight response.

 

问题解析:

前端服务器fetch.js请求后端服务器api报跨域问题

前端服务器:3000,后端服务器:3030,KOA2

由于前端请求的header字段未在服务器端运行,导致请求跨域报错。

 

解决方案:

在后端response返回的header允许前端header的请求

 

以koa2为例:

router.all('*', (ctx, next) => {
  // 允许来自所有域名请求
  ctx.set('Access-Control-Allow-Origin', '*');

  // 是否允许发送Cookie,ture为运行
  ctx.set('Access-Control-Allow-Credentials', true);

  // 设置所允许的HTTP请求方法
  ctx.set('Access-Control-Allow-Methods', 'OPTIONS, GET, PUT, POST, DELETE');

  // 服务器支持的所有头信息字段,多个字段用逗号分隔
  ctx.set('Access-Control-Allow-Headers', 'x-requested-with, x-ui-request, lang');
  next();
});

 

分享到:
评论

相关推荐

    230221-010shopvue(抽离Axios拦截守及其全局变量定义)

    import axios from 'axios'; import router from '../router/index' //实例化拦截守卫实例。 const axiosInterceptor = axios.create({ ...它可以通过设置一个 `baseURL` ... //has been blocked by CORS policy: Respon

    gaemangtalk_frontend:它是面向有抱负的开发人员的Tok,Gaemang Tok前端存储库。

    Access to XMLHttpRequest at 'http://54.180.141.91:8080/api/user/signup/emailCheck' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass ...

    allow-cors-access-control插件

    然而,对于开发者测试或者快速验证跨域请求功能时,使用“allow-cors-access-control插件”这样的工具就非常方便,它可以模拟服务器返回包含正确CORS头的响应,无需修改服务器配置。 JavaScript和ECMAScript是紧密...

    数据请求的时候遇到 Status code: 431 Request Header Fields Too Large

    当在数据请求过程中遇到“Status code: 431 Request Header Fields Too Large”时,这通常意味着请求头(Header)中的字段过大,超过了服务器能够接受的限制。这个错误可能发生在前端或后端,具体取决于请求的实现...

    web跨域完美解决方式

    CORS是现代浏览器支持的一种跨域访问机制,通过在服务器端设置`Access-Control-Allow-Origin`响应头来允许特定的跨域请求。Tomcat可以通过配置`web.xml`文件,添加过滤器来实现CORS支持: ```xml <filter-name>...

    Access-Control-Allow-Origin跨域问题的终极解决,给自己做备份

    2. 前端配置:在前端,使用现代的Fetch API或XMLHttpRequest时,可以通过设置withCredentials标志,配合服务器端设置Access-Control-Allow-Credentials,实现带有Cookie的跨域请求。 3. 预检请求(Preflight ...

    XMLHttpRequest

    ### XMLHttpRequest与DWR AJAX异步请求详解 #### 一、XMLHttpRequest简介 `XMLHttpRequest`是一种在浏览器端执行异步请求的技术,它允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分页面内容。这...

    cors解决ajax跨域

    在AJAX中,使用XMLHttpRequest或Fetch API进行跨域请求时,浏览器会先发起一个预检请求(Preflight Request),即OPTIONS请求,用来询问服务器是否允许跨域。服务器在响应这个预检请求时,会包含CORS相关的响应头,...

    vue+springboot实现项目的CORS跨域请求

    跨域资源共享CORS(Cross-origin Resource Sharing),是W3C的一个标准,允许浏览器向跨源的服务器发起XMLHttpRequest请求,克服ajax请求只能同源使用的限制。关于CORS的详细解读,可参考阮一峰大神的博客:跨域资源...

    22-09-25-05_UserVue( uin-app本地主机数据跨域(Cors)数据交互实现之--后端)

    1、 通过向浏览器中安装指定的插件,解决跨域问题:Access to XMLHttpRequest at ‘http://localhost:8080/xxx‘ No ‘Access-Control-Allow-Origin‘ head_一觉睡过头的菜鸡的博客-CSDN博客_access to ...

    XMLHttpRequest_test:XMLHttpRequest学习代码

    XMLHttpRequest(XHR)是Web开发中的一个关键技术,它允许JavaScript在不刷新整个页面的情况下与服务器进行异步数据交换。这个技术对于实现动态网页和Ajax(Asynchronous JavaScript and XML)应用至关重要。...

    Ajax跨域问题 解决方案

    - 使用CORS:在服务器端添加合适的CORS头部信息,例如`Access-Control-Allow-Origin: *`。 - 使用代理接口:在本地服务器上设置一个代理接口,例如`http://localhost:8080/proxy/api/data`,并将请求转发给`...

    SRC挖掘经验-cors劫持账户.docx

    CORS 漏洞挖掘经验分享 CORS(Cross-Origin Resource Sharing,跨域资源共享)是一种机制,它允许不同源(domain、protocol、port)的服务器之间进行资源共享。CORS mechanism 是为了解决浏览器的同源策略问题,即...

    Laravel开发-cors-laravel

    CORS是一种W3C标准,它允许浏览器向非同源(即与当前页面的源不同)的服务器发起XMLHttpRequest请求。默认情况下,浏览器遵循同源策略,禁止此类请求,但CORS通过在HTTP头中添加特定字段,允许服务器指定哪些源可以...

    [js]轻便的XMLHttpRequest应用函数:downloadUrl()

    这个函数利用了浏览器内置的 `XMLHttpRequest` 对象或在旧版本的 Internet Explorer 中使用的 ActiveXObject 来实现异步通信。以下是关于 `downloadUrl()` 函数的详细解释: 1. **参数说明**: - `url`:必填参数...

    star-track:Elixir API创建天文教育游戏

    星轨要启动Phoenix服务器...学到更多官方网站: : 指南: : 文件: : 论坛: : 资料来源: : CORS 在本地环境中,如果您尝试从Star Track Web项目访问URL,则可能会收到以下错误消息: Access to XMLHttpRequest at '...

    vue-socket.io跨域问题有效解决方法

    Access to XMLHttpRequest at ‘http://192.168.37.130:5050/socket.io/?EIO=3&transport=polling&t=N0oqNsW’ from origin ‘http://localhost:8080’ has been blocked by CORS policy: No ‘Access-Control-Allow...

    异常 AJAX 跨域请求报:No ‘Access-Control-Allow-Origin‘ header is present

    在进行Web开发时,我们经常会遇到“跨域”这一概念,它是由于浏览器的同源策略(Same-origin policy)所导致的安全限制。同源策略规定,一个域下的文档或脚本不能与另一个不同源的资源进行交互。这里的"源"是由协议...

    跨域请求资源-jsonp和cors区别.pdf

    - CORS还支持预检请求(preflight request),这是一种由浏览器自动发出的OPTIONS请求,用于确认服务器是否允许特定类型的跨域请求。预检请求通常发生在包含复杂的请求方法(如PUT或DELETE)或者自定义HTTP头的情况...

Global site tag (gtag.js) - Google Analytics