当前位置: 首页 > 面试题库 >

Ajax Laravel返回视图500错误

公冶龙野
2023-03-14
问题内容

我正在通过Ajax将幻灯片(Jquery Ui Slider)中的每个滑块值传递到我的Controller。

Slider + Ajax看起来像这样:

    $("#sliderNumCh").slider({
        range: "min",
        min: 0,
        max: 20,
        step: 1,
        value: numbersOfChapters,
        change : function(e, slider){
            $('#sliderAppendNumCh').empty();
            var sliderValue  = slider.value;
            var getSliderVal = document.getElementById('sliderValue').value = sliderValue;
            var getPrId      = document.getElementById('editId').value;

            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            $.ajax({
                type: 'post',
                url: "{{ Route('editProductPost', $product->id) }}",
                headers: {
                    'X-Requested-With': 'XMLHttpRequest'
                },
                data: {
                    value: getSliderVal,
                    productId : getPrId
                },
                success: function (option) {
                    console.log(getSliderVal);
                }
            });
        },
    });

因此,我确实有这样的想法:

<meta name="csrf-token" content="{{ csrf_token() }}">

我的路线如下所示:

Route::post('edit/{productID}', ['as' => 'editProductPost', 'uses' => 'ProductController@editProductPost']);

在我的Controller方法中,我这样调用它:

public function editProductPost(Request $request)
{
    $sliderValue = $request->get('value');
    Log::info($sliderValue);

    return view('productRom.edit', [
        'sliderValue' => $sliderValue
    ]);
}

Log :: info($ sliderValue)告诉我,我确实在每张幻灯片上都获得了正确的滑块值。

当我尝试返回到编辑视图时,在控制台中出现此错误:

POST http:// localhost / myApp / public / product / edit /
73
500(内部服务器错误)

我该如何解决?

编辑

由于我认为这一行:

<form action="{{ route($route) }}"...>

路由变量未定义,因此我在return语句中添加了该变量。

return view('productRom.edit', [
    'sliderValue' => $sliderValue,
    'route' => 'editProductPost'
]);

错误消失了,但是当我尝试$sliderValue像这样访问变量时:

<p>{{ isset($sliderValue) ? $sliderValue : "nothing" }}</p>

它印给我 nothing

编辑

控制器:

    public function editProductPost(Request $request)
    {

        return response()->json([
            'sliderValue' => $request->get('value')
        ]);
   }

查看(ajax):

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });
        $.ajax({
            type: 'post',
            url: "{{ Route('editProductPost', $product->id) }}",
            headers: {
                'X-Requested-With': 'XMLHttpRequest'
            },
            data: {
                value: getSliderVal,
                productId : getPrId
            },
            success: function (response) {
                // check it has some data
                if (response.length) {
                    // spit it out
                    console.log(response);
                } else {
                    console.log('nothing returned');
                }
            }
        });

问题答案:

您的控制器方法应如下所示:

public function editProductPost(Request $request)
{
    return response()->json([
        'sliderValue' => $request->get('value')
    ]);
}

您不应该将视图返回给ajax请求。

您的ajax成功方法应如下所示(例如):

// first arg is the data returned by the controller method
success: function (response) {
    console.log(response);
}

它应该输出如下内容:

{
    'sliderValue': 4
}


 类似资料:
  • 我部署基本Laravel项目到服务器。当我点击我的域名,它返回默认的欢迎视图。当我把简单的道路(见下文)添加到代码中,并尝试在浏览器中输入该路线时,它会返回500个内部错误。除"/"根路由外,所有路由都返回500错误。 文件夹结构: Laravel文件位于Laravel目录中,但来自公共目录的文件位于api目录中。 .api目录中的htaccess文件: 存储目录和其中的所有内容对任何人都是可写、

  • 我正在使用Spring boot来渲染页面。我也使用了叶子。但是我在从浏览器调用它时得到了下面提供的异常。 我已经编写了视图解析器类,当我使用为此。 和我在应用程序中提到的一样。yml也是。应用yml是 这是我的Controller类,负责渲染index.jspMainController.class

  • 我使用RESTAssured练习web服务。在post请求中,它返回500服务器错误,其中我使用邮差发送请求,没有错误。谁能帮我调试一下这个错误吗?请给点意见。任何帮助都是感激的?提前道谢。 错误消息的状态代码应为<200>,但为<500>。 堆栈跟踪:

  • 问题内容: 我有一个返回内部服务器错误(500)的php应用程序时出现问题,但错误日志中未显示任何内容。 现在,我知道我要运行的内容有错误,我知道缺少某些文件,但没有丢失,但是应该在apache错误日志中显示某些内容(否则,我应该如何确切知道丢失的内容)。 我创建了一个测试脚本,该脚本在相同的vhost配置下出错,并且这些错误显示得很好,因此一切似乎都已正确配置到php / apache。是否有某

  • 我有以下异常处理程序: 此代码应该包装异常并返回具有正确状态代码的ResponseEntity。

  • 问题内容: 错误信息: 而我的代码: 并且my-form.html是: 如果我在其中放置一个while循环,它将永远加载。 然后输入比当前页面永久加载的更高的温度。如果我使用上面列出的当前代码,则会出现错误。 问题答案: 以下内容不返回响应: 你必须返回类似或的内容。 这样可以解决问题