【问题标题】:Wordpress allow cross origin on wp-content (CORS)Wordpress 允许跨源 wp-content (CORS)
【发布时间】:2020-07-13 00:55:13
【问题描述】:

/wp-content 文件夹上的 Wordpress 和 CORS 有问题

  • 站点 A(我的主要网站):example.com
  • 站点 B(我的 wordpress):wordpress.example.com

我的目标是从 A 加载 pdf 文件(在 React 中使用 PDF.js)。PDF 文件存储在 B 上。PDF.js 发出 Ajax 请求。

  • 如果我从 A 请求 B (wordpress.example.com) => 它可以工作
  • 如果我从 A 请求 B (wordpress.example.com/my-page) => 它有效
  • 但是如果我从 A 请求 B (wordpress.example.com/wp-content/uploads/my-test.pdf) => 它不起作用

我尝试在/wp-content 文件夹上添加.htaccess,但没有任何改变..

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

感谢您的帮助

【问题讨论】:

  • 收到错误时的控制台日志是什么?
  • @gael 我更新了我的帖子以添加控制台日志和请求信息
  • 正如控制台日志中提到的,您必须将请求的模式设置为“no-cors”。你会在这里找到答案stackoverflow.com/questions/54301686/…
  • 不,它不起作用:/
  • 实际问题似乎是服务器响应 500 错误。 https://articles.petanque-live.com/wp-content/uploads/calendars/063-2020.pdf 的响应是 500 错误,https://articles.petanque-live.com/wp-content/ 的响应也是 500。所以你没有 CORS 问题。或者至少不清楚你是否真的有 CORS 问题。相反,您有一个 500 问题——内部服务器故障。浏览器报告 CORS 消息的唯一原因是因为 500 错误通常永远不会有 Access-Control-Allow-Origin 标头。

标签: wordpress cors


【解决方案1】:

我能够使用 Node 代理 (Typescript) 解决我的问题。

import { Request, Response } from 'express';
import request from 'request';

export class Controller {

    get(req: Request, res: Response): Promise<Response> {
        try {
          const file = req.params.file;
          let url = `https://wordpress.example.com/wp-content/uploads/${file}`;
          let src = request(url);
          req.pipe(src).pipe(res);
        } catch (error) {
          console.log(error);
          return res.status(500).json(error.message);
        }
    }

}

export default new Controller();

它没有解决 CORS 问题,但它绕过了它。 感谢您的帮助:)

【讨论】:

    猜你喜欢
    • 2018-02-21
    • 2021-04-28
    • 2018-07-28
    • 1970-01-01
    • 2017-05-26
    • 2019-10-27
    • 2023-01-08
    • 2021-12-17
    • 2018-08-19
    相关资源
    最近更新 更多