跨域jQuery AJAX文件上传



关键是我有一子域它是用于上传文件的API端点。但当我试图用jQuery上传任何东西到这个子域名时(从主www域名)我得到错误

XMLHttpRequest无法加载http://1.storage.site.net/upload。Access-Control-Allow-Origin不允许Origin http://www.site.net

我尝试了所有方法:nginx中的头文件,源代码中的头文件,我甚至尝试用

将文件发送到存根文件
<?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]);

两个字:NOTHING WORKS。

。我注意到小文件(大约1MB)可以正确上传,而大一点的文件(比如5MB) -不允许(不允许原始文件)。

有办法解决这个问题吗?

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

如果这个假设是正确的,你应该在浏览器的"Net"选项卡中看到更多的细节——上传脚本应该返回某种错误条件。

要进行调试,您可以进行普通的基于表单的文件上传,对其进行测试,并进行调整,直到它能够正常工作。

相关内容

  • 没有找到相关文章

最新更新