从ajax获取数据库记录错误500

如何解决从ajax获取数据库记录错误500

我正在通过 GET 执行 AJAX 请求,以从视图中的数据库接收数据。

我的 HTML:

<form method="POST" action="{{ route('myaccount.facturacion.guardar') }}">
@csrf

...

<div class="col-lg-3">
        <div class="form-group mb-3">
            <label>Código postal</label>
            <input type="text" name="codigo_postal" class="form-control" id="codigo_postal" maxlength="5" required>
        </div>
    </div>

        <div class="col-lg-3">
            <div class="form-group mb-3">
                <label>Localidad</label>
                <input type="text" name="localidad" id="localidad" class="form-control" required>
            </div>
        </div>

        <div class="col-lg-3">
            <div class="form-group mb-3">
                <label>Provincia</label>
                <input type="text" name="provincia" id="provincia" class="form-control" required>
            </div>
        </div>

</form>

我正在尝试执行的 AJAX 请求:注意:我将原始 url 替换为:...

$(document).ready(function () {
    var codigo_postal = $('#codigo_postal');
    codigo_postal.keyup(function () {
        var value = codigo_postal.val();
        if (value.length == 5) {

            $.ajax({
                url: '.../postal/' + value,method:'GET'
            }).done(function(res){
                alert(res)
            });
        }
    })
});

我尝试向其发出请求的路线:

Route::get('postal/{codigo_postal}','MyAccountController@obtenerCodigoPostal')->name('postal_code.get');

附加到路由的控制器方法:

public function obtenerCodigoPostal($codigo_postal) {
        $cp = Categoria::where('codigo_postal',$codigo_postal)->first();
        $postal_code = $cp->codigo_postal;
        return response(['postal_code' => $postal_code]);
    }

我得到的错误:

enter image description here

你能帮我吗?请

解决方法

看起来响应成功返回到服务器,但正如 Rory 所说,这是服务器端代码的错误。这里:

public function obtenerCodigoPostal($codigo_postal) {
    $cp = Categoria::where('codigo_postal',$codigo_postal)->first();
    $postal_code = $cp->codigo_postal;
    return response(['postal_code' => $postal_code]);
}

如果您试图返回 Categoria 是否存在,这有点不同。现在,您将返回与进入方法完全相同的内容,codigo_postal。但是,如果具有该邮政编码的 Categoria 不存在,它将在服务器上失败(500 错误),因为 $cpnull,因此无法提取邮政编码来自空对象。

我建议尝试发回邮政编码或失败消息,并在中间进行错误检查以防止服务器错误:

public function obtenerCodigoPostal($codigo_postal) {
    $cp = Categoria::where('codigo_postal',$codigo_postal)->first();
    if($cp === null){
        return response('Fail',200);
    }
    else{
        $postal_code = $cp->codigo_postal;
        return response('Pass',200);
    }
}

您可以稍后调整响应 - 这只是为您提供一种测试成功的方法。

HTH

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?