【问题标题】:Laravel AJAX PUT update request only works in localhostLaravel AJAX PUT 更新请求仅适用于 localhost
【发布时间】:2017-01-06 09:52:20
【问题描述】:

我不明白为什么这段代码只能在我的本地主机上运行,​​在我的生产服务器中请求通过并且 $request->input() 返回一个空数组,但在我的本地主机中它工作得很好。两者都在 php7 版本上。有什么想法吗?

var formData = new FormData($('#postSliderFrm')[0]);

if(imagePicked)
    formData.append('file',imagePicked);

formData.append('_method', 'put');

$.ajax({
    type: 'PUT',
    url: '{{route('dashboard.admin.sliders.update', $slider->id)}}',
    data: formData,
    processData: false,
    contentType: false,
    success: function(data) {

    },
    error: function(data) {

    }
});

我也试过添加

{!! method_field('put') !!}

在我的表单中,但仍然没有运气

【问题讨论】:

  • 因为我猜你的 localhost 帖子最大大小超过 2 MB。默认情况下,apache 只处理 2MB 的数据。
  • 你从服务器得到什么样的响应? (浏览器控制台->网络->单击请求;或者根据您使用的浏览器而定的类似内容)

标签: jquery ajax laravel jquery-file-upload php-7


【解决方案1】:

Method not allowed when PUT used over AJAX for Laravel resource:看一下,使用 GET 或者更常用的 POST 可能会更好,您是否特别需要使用 PUT?

【讨论】:

  • 此处链接的问题显示了答案。你需要spoof a PUT request in Laravel。将 `type: 'PUT',` 替换为 POST,并像您一样包含 method_field('put')
  • 我使用 PUT 是因为我使用的是 Laravel 的 CRUD 资源。 PUT 和 POST 在性能方面有什么不同吗?
  • @user3364008 在 stackoverflow 上有很多关于它们的信息,这是一个很好的例子 -> stackoverflow.com/questions/107390/…
  • @Don'tPanic 哇,谢谢!这解决了我的问题!不敢相信修复这么简单,但奇怪的是它在我的本地主机上工作
猜你喜欢
  • 2016-03-20
  • 2018-01-10
  • 2016-03-14
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 2017-01-31
  • 2017-06-16
  • 2012-03-07
相关资源
最近更新 更多