很好,我在laravel上使用ajax时有一些错误,控制台返回404,这是我的ajax
$('#btn_search_postcode').click(function(e){
let postcode = $('#postcode').val();
if(postcode != ""){
$.ajax({
method: "GET",
url: "{{route('company.postcode')}}",
dataType: "JSON",
data:{
'id':postcode
},
success: function(result){
if(result != ""){
console.log(result.prefectureid);
}
else{
console.log('null');
}
}
})
}
})我已将url更改为“{{url(‘company/postcode’)}}/”+邮政编码,但仍然出错--这是我的路线
Route::GET('/company/postcode/{id}', 'mycontroller\companyController@getPostCode')->name('company.postcode');但是当我将url改为
url: "http://localhost/mylaravel/public/company/postcode/"+postcode,我不能使用最后的方法,因为在其他pc使用不同的端口。
有人能帮我解决这个问题吗?注意:我可以看到csrf令牌,当我在ajax中再次添加csrf令牌时,我会看到错误链接上的2个令牌。
编辑:我仍然没有解决这个问题,但是现在我使用url:rootUrl+"/companies/postcode/"+postcode,来解决这个问题,这样做可以吗?
发布于 2020-11-02 18:00:24
问题是,您的路由有一个必需的参数{id},而且由于您在呈现路由的url时没有提供它,laravel没有找到路由。有两种解决办法:
在您的路由声明中,id参数是可选的,如so {id?})
{{route('company.postcode',$id)}})--在视图ex:中带有一些已定义变量的
诚恳地
发布于 2020-11-02 18:27:33
你必须像这样改变它
url: "{{url('company/postcode')}}"+'/'+postcode请试试这些,让我知道发生了什么
发布于 2020-11-02 18:42:40
如果我理解你的要求,你有一条叫company.postcode的路线,对吗?如果你确实有这条路线,而现在你想要的是通过邮政编码得到公司,你将需要利用Laravel的路由模型绑定。您可以做的是进入您的模型并创建如下函数:
public function getRouteKeyName()
{
return 'postcode';
}然而,我看到了一个问题,这可能会导致一些问题的未来。如果有多家公司拥有相同的邮政编码,会发生什么情况?拉勒维尔怎么知道你想要哪一个?一个更好的选择是使用id字段并使用它检索您的公司。除非您将数据库中的邮政编码字段设置为唯一字段。这再次引发了这样的问题:当你有两个或两个以上的公司想要访问共享相同邮政编码的网站时,会发生什么?
https://stackoverflow.com/questions/64650266
复制相似问题