javascript - jQuery AJAX 因表单请求中的文件而失败
问题描述
我的 Laravel 应用程序上的 jQuery AJAX 调用存在问题。type="file"
在表单中使用时失败。
我无法在本地重现该问题,它仅发生在产品服务器上。
$.ajax({
url: url,
type: $(this).attr("method"),
dataType: "JSON",
data: new FormData(this),
processData: false,
contentType: false,
...
我得到的错误是:
POST ... net::ERR_CONNECTION_CLOSED
Laravel 日志中没有错误,如果我在错误回调中转储错误,则只有一条消息“错误”,所以那里没有任何帮助。
可能是什么问题?
解决方案
由于某种原因,如果您设置文件类型并尝试提交表单而不实际提交实际文件,则服务器会崩溃。在这种情况下,该字段显示为具有 name""
和 size 0
。
这样做就像一个魅力:
var verifyIdentity = formData.get('verify_identity')
if(verifyIdentity && verifyIdentity.size === 0){
formData.delete('verify_identity')
}
推荐阅读
- html - 单击html中的按钮时如何使弹出窗口出现
- excel - 从 Excel 插件发布后,TFS 中史诗和功能的树状结构已丢失
- python - 在 Python 中引用父或祖父文件夹中的自定义模块会导致“ModuleNotFoundError: No module named”
- laravel - 如何为一组用户声明通知?
- c - C 命令行参数验证错误
- r - 在 ggplot2 x 轴中添加所有年月日期
- excel - 如何判断 UI 是否发起了 SaveAs 操作?
- database - 为什么我的 $in 命令出现语法错误?
- javascript - NextJs useEffect 每次我路由时都会触发
- if-statement - Inform7 忽略简单的 If 语句