当前位置: 首页 > 知识库问答 >
问题:

Ajax在laravel中返回未定义

巫马越彬
2023-03-14

首先,我是在laravel中使用ajax的初学者。我试图通过警报或控制台检查输入字段是否正常工作。日志返回未定义。

我的刀片文件代码

<div id="add_tag_modal" class="modal fade">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-body">
                <h2>Add New Tag</h2>
                <hr>
                <form id="add_tag_form" method="POST">
                    @csrf
                    <div class="mess"></div>
                    <div class="form-group">
                        <label for="">Name</label>
                        <input name="name" type="text" class="form-control">
                    </div>
                    <div class="form-group">
                        <input class="btn btn-primary btn-sm" type="submit" >
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

我的控制器文件代码。。尽管其注释的公共函数存储(Request$Request){//Tag::create([

    //     'name' => $request -> name

    // ]);
}

网状物php/**

  • 标签控制器*/

路由::资源('tag','App\Http\Controllers\TagController');

路由::post('tag-create','App\Http\Controllers\TagController@store')-

最后是我的ajax代码

  $(document).on('submit','form#add_tag_form',function(e){

    e.preventDefault();


    let name = $('form#add_tag_form input[name="name"]').val();


    if (name == '') {

        $('.mess').html('<p class="alert alert-danger">All fields are required!<button type="button" class="close" data-dismiss="alert" aria-label="Close">');

    }else{

         $.ajax({
    url:'tag-create',
    method: "POST",
    contentType: false,
    processData : false,
    data : new FormData(this),
    success: function(data){
        console.log(data.name);

    }
         });
    }

  });

共有3个答案

马沛
2023-03-14

您可以尝试将此添加到您的php代码中,以显示500代码的错误信息。

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
欧阳昊焱
2023-03-14

您应该尝试将“let name”替换为“var name”,然后对其发出警报或进行控制台操作。

张姚石
2023-03-14

我相信你需要更新你的控制器。

您需要首先验证请求

$validate = $this->validate($request, [
    'name' => 'required|string|max:255'
]);

之后,将$valester变量发送到Model Tag以创建新资源:

$save = Tag::create($validate);

if($save) {
   return true; //return statements you can customize based on your requirement
} 
return false;

通过这样做,您正在验证传入的请求,如果返回值为true,则进一步处理。但是对响应要小心,您应该返回消息和状态代码以验证响应。。不要对返回语句使用true或false。在AJAX响应中,检查状态代码并进一步处理消息。

谢谢你

 类似资料:
  • 问题内容: 我在这段代码上遇到问题;返回值返回为“ undefined”。有什么问题? 较新的代码: 我怎么称呼它: 问题答案: 根据您的修改进行更新 解决这些问题应可使代码正常工作。 旧答案 您正在以 同步 模式调用XMLHttpRequest ,这意味着它将 阻塞 脚本,直到请求完成为止,因为您是在阻塞调用之后(即请求已经完成之后)分配回调,因此您的代码永远不会收到通知。 由于同步模式会阻止脚

  • 我面临以下问题:每当我单击时,显示。 Web方法: Ajax脚本

  • 问题内容: 当我警告jsonServerResponse函数返回的值时,尽管从process.php页面返回了JSON,但其值未定义。 我知道问题是异步请求完成之前发出的警报功能,但是我不确定如何解决此问题。任何建议都非常感激:) 问题答案: 好的,我是从其他帖子中弄清楚的。结果可以在成功回调中处理,也可以添加本身是回调函数的参数并将ajax请求的结果应用于回调。 还有gdoron,您所询问的那一

  • 问题内容: 我是“ AJAX”的新手,我一直在尝试使用“ AJAX”发送请求“ ONSELECT”并在“ laravel 5”中收到“ JSON”响应。 这是我的看法 这是我的控制器来接收ajax请求 这是我的路线 我也尝试过仅用和更改ajax的URL 。 问题答案: 出于安全原因,Laravel 5使用csrf令牌验证....尝试此操作… 在routes.php中 在主布局文件中 var CSR

  • 问题内容: 我正在通过Ajax将幻灯片(Jquery Ui Slider)中的每个滑块值传递到我的Controller。 Slider + Ajax看起来像这样: 因此,我确实有这样的想法: 我的路线如下所示: 在我的Controller方法中,我这样调用它: Log :: info($ sliderValue)告诉我,我确实在每张幻灯片上都获得了正确的滑块值。 当我尝试返回到编辑视图时,在控制台