Skip to main content
 首页 » 编程设计

jquery之跨域jQuery AJAX文件上传

2026年07月24日11softidea

所以重点是我有一个子域,它是用于上传文件的 API 端点。但是当我尝试使用 jQuery 将任何内容上传到此子域(来自主 www 域)时,我收到错误

XMLHttpRequest cannot load http://1.storage.site.net/upload. Origin http://www.site.net is not allowed by Access-Control-Allow-Origin.

我尝试了一切:nginx 中的 header 、源代码中的 header ,我什至尝试使用仅将文件发送到 stub 文件

<?php 
 
header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); 
header('Access-Control-Max-Age: 1000'); 
header('Content-type: application/json'); 
header('Access-Control-Allow-Headers: *'); 
 
echo json_encode(['lulz' => 123]); 

用两个词来说:没有任何作用。

但是。我注意到小文件(约 1MB)可以正确上传,而文件稍大一些(比如 5MB)——不是(不允许来源)。

有办法解决吗?

请您参考如下方法:

我敢打赌,5MB 文件对于 Apache 的 max_request_body 设置(或无论其名称是什么)来说太大,导致 PHP 脚本无法执行,因此永远无法发送这些 header ,这进而产生误导性的跨域错误。

如果这个假设成立,您应该在浏览器的“网络”选项卡中看到更多详细信息 - 上传脚本应该返回某种错误条件。

要进行调试,您可以执行常规的基于表单的文件上传、测试并调整直至其正常工作。