【问题标题】:HTTP request works with cURL but gets CORS response when made in browser with javascriptHTTP 请求适用于 cURL,但在使用 javascript 在浏览器中发出时会获得 CORS 响应
【发布时间】:2016-08-25 03:16:20
【问题描述】:

当我使用 $.get 或 superagent 或 request 或 axios 通过浏览器访问 typeform API 时,我收到错误 No 'Access-Control-Allow-Origin' header is present on the requested resource。 Origin 'http://localhost:8100' 因此不允许访问。

但是,当我使用 cURL 或 HTTPIE 或 Postman 发出相同的请求时,每次都成功。如何解决这种行为以及如何实现客户端版本?

【问题讨论】:

  • 除非服务器明确允许,否则不允许浏览器发出跨域 AJAX 请求。服务器不受限制。
  • 您可以出于开发目的禁用浏览器中的 cors 安全性。谷歌一下就行了。

标签: javascript html cors


【解决方案1】:

CORS 由您的浏览器在客户端强制执行。如果您没有使用浏览器发出请求,则不会强制执行 CORS。

【讨论】:

    【解决方案2】:

    可以通过 htaccess 轻松处理 CORS 错误。

    将此添加到您的 .htaccess 文件中:(根据需要添加更多文件扩展名)

    <FilesMatch ".(eot|ttf|otf|woff)">
        Header set Access-Control-Allow-Origin "*"
    </FilesMatch>
    

    【讨论】:

    • 我怀疑 OP 有权修改 typeform API 的配置。
    猜你喜欢
    • 2015-12-05
    • 2015-10-24
    • 2018-04-02
    • 1970-01-01
    • 2021-05-24
    • 2021-10-19
    • 2019-12-20
    • 2011-09-07
    • 1970-01-01
    相关资源
    最近更新 更多