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

如何解决webflow和netlify之间的CORS问题

羿博延
2023-03-14

我已经部署了我的第一个netlify站点,它只是从airtable返回一些记录:

https://codefy-airtable.netlify.app/.netlify/functions/courses

它也适用于我设置的重定向:-

https://codefy-airtable.netlify.app/api/courses

然而,当我在webflow中将axios get函数添加到我的头脚本中进行测试时,我得到了一个CORS错误

"从源'https://mgl-community.webflow.io'在'https://codefy-airtable.netlify.app/.netlify/functions/courses'处访问XMLHttpRequest已被CORS策略阻止:请求的资源上不存在'Access-Control-Allow-Origin'标头。"

mgl-community.webflow.io

Make Give Live |社区这是我的功能:-

   axios.get('https://codefy-airtable.netlify.app/.netlify/functions/courses')
  .then(function (response) {
    console.log('axios ', response);
  })
  .catch(function (error) {
    console.log('Axios ', error);
  });

这是我的github存储库https://github.com/jonathanlyon/airtable-temp,显示_header文件:-

/*
Access-Control-Allow-Origin: *

和. toml文件:

[[headers]]
for = "/*"
[headers.values]
Access-Control-Allow-Origin = "*" 

知道为什么我不能使用从URL返回的json数据吗?

谢谢

约拿单

共有3个答案

房星光
2023-03-14

我遇到了同样的问题,发现问题是由于“同步无服务器函数的10秒执行限制”(参考:https://docs.netlify.com/functions/overview/)

我的发现是,在10秒钟后调用Netlify函数后,Netlify函数将继续运行,但是,响应包含正文

TimeoutError:在新的timeouterrr(D:\yourModule\node_modules\netlify cli\node\modules \lambda local\build\lib\utils.js:110:28)上下文中,任务在10.00秒后超时。(D:\yourModule\node_modules\netlify cli\node_modulas\lambda local\build\lib\context.js:110:19)listOnTimeout(internal/timers.js:554:17)processTimers

回复正文(由邮递员提供)

以及仅具有关键字“x-powered-by”、“date”、“connection”和“content-length”的报头。

回复的标题(由邮递员发送)

由于没有“Access Control Allow Origin”标题,浏览器将显示错误消息

CORS 策略已阻止从源“http://localhost:3001”在“http://localhost:8888/.netlify/functions/yourFunction/”处访问 XMLHttpRequest:请求的资源上不存在“访问控制-允许-源”标头。

在Firefox中,错误消息是

跨域请求被阻止:同源策略不允许在http://localhost:8888/.netlify/yourFunction/.读取远程资源(原因:缺少CORS标头“Access-Control-Allow-Origin”)。

但是,根本原因不是服务器中的 CORS 设置。错误消息可能会将您定向到错误的方向。

周志文
2023-03-14

您必须修改您的API,使用:npm install cors安装cors,然后在中间件中:

import cors from 'cors'

app.use (cors ())
楮法
2023-03-14

我想出了一种在我的代码中添加标题的方法,现在它起作用了。似乎尽管有一个_header文件并将标题添加到Netlify中的. toml文件,但它并没有起到作用。

在我的api返回中,我添加了标题:-

module.exports = (statusCode, body) => {
    return {  
        headers: {
          "Access-Control-Allow-Origin": "*"
        },
        statusCode: 200,
        body: JSON.stringify(body)
      };

    };
 类似资料:
  • 我想知道是否可以从客户端解决这个问题,因为我在内部没有任何访问API的权限。 有人能帮我解决这个问题吗? 以下是newsactions.js的代码: 如果您需要更多的信息或有问题,请在下面评论。 谢谢你。

  • 我正在使用第三方API,从中我得到以下错误: CORS 策略已阻止从源“https://mydomain.xyz”访问位于“https://myapi/..”的 XMLHttpRequest:对预检请求的响应未通过访问控制检查:请求的资源上不存在“访问控制-允许源”标头。 我想知道如何在我的应用程序中启用CORS策略。我的. htAccess文件是: 我正在使用Laravel应用程序。提前感谢。

  • 我试图在我的Ionic Angular应用程序中执行以下函数,cloudFunctionUrl是我在firebase项目中的一个云函数: 为了解决CORS问题,我安装了允许CORS:Access-Control-Allow-Origin chrome插件。以下是白名单域的列表: null 我遇到了两个问题: null 有人能告诉我怎么解决这件事吗? 我也尝试将下面的头添加到请求中,但错误仍在出现:

  • 我只是无法解决我的角度10应用程序和Spring引导1.5之间的CORS问题。 我已经尽我所能尝试了一切,但仍然不起作用。我正在尝试设置一个全局CORS配置以允许一切 我目前的实现: 我在前端得到了这个: 版本 [编辑] 我将其改为: 但还是不起作用

  • 我有一个Grails 3.3.6应用程序。我想在这个应用程序中合并来自不同Spring启动应用程序的一些neo4j功能。所以我从Spring启动应用程序中添加了以下deps- 并将源文件放在我的Grails应用程序的src文件夹中。spring boot应用程序正在使用一个配置类来创建bean,如下所示- 当我运行grails应用程序时,我得到了Spring bean冲突异常。看起来Grails和