无法在Laravel中使用GET方法通过 AJAX 传递参数

5jvtdoz2  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(162)

我尝试在Laravel中使用GET方法通过 AJAX 传递一个参数。出于测试目的,我尝试在响应中获取相同的参数值。但我得到的响应是{code}

$.ajax({
    type: "GET",
    url: "{{ url('helpers/get-item-details/{code}') }}",
    data: {
        code: 100390,
    },
    success:function(response) {
        console.log(response);
        $('input[name="hs_code"]').val(response.hs_code);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log("Invalid response");
        console.log(jqXHR.responseText);
        alert(jqXHR.responseText);
    }
});

控制器:

class Helper
{
    public static function getItemDetails($itemId){            
        return $itemId;
    }
}

不确定哪里出错了。我试着像下面这样调用浏览器上的URL,它会按预期返回参数值。

helpers/get-item-details/100390

提前感谢您的帮助。

路线:

Route::get('/helpers/get-item-details/{id}', 'App\Helpers\Helper@getItemDetails');
dfty9e19

dfty9e191#

最后我的代码出现了问题。这段代码在另一个项目中对我来说是有效的。我的控制器出了问题。我不得不在函数定义中将参数作为Request对象。相反,我将其设置为变量。

正确的控制器代码:

class Helper
{
    public static function getItemDetails(Request $request){
        return $request->code;
   }
}

感谢您的所有贡献。

wvt8vs2t

wvt8vs2t2#

试试这个

Route::get('/helpers/get-item details/{id}','App\Helpers\Helper@getItemDetails')->name('yourRouteName');

你在静态地传递你的代码,所以你可以使用类似于

url: "{{ route('yourRouteName', 100390) }}",

如果你想使用动态代码,那么你可以定义一个data-herf属性给你的a标签,或者你可以访问 AJAX 中的表单属性,如下所示。

data-href="{{ route('yourRouteName', $code) }}"

然后像这样访问

let url = $(this).attr('data-href');
url: url,

您也可以执行类似操作,

var code = 100390; //whatever your code is
var url = '{{ route("yourRouteName", ":code") }}';
url = url.replace(':code ', code );

而在 AJAX 中

url: url,

您还可以读取here

相关问题