Laravel& Ajax:发送特定网址来获取数据?

时间:2016-12-15 10:07:45

标签: javascript ajax laravel

我正在使用Laravel和Ajax通过网址获取数据,我有这个:

Route::get('providers/{providers}','ProvidersController@getProviders');

我的控制器上的那个函数返回给我一个特定id的所有提供者,这个工作正常,但我需要在我的选择输入中填充这些数据,我现在得到这样的:

  $(document).ready(function(){
$('#providers_types_id').change(function(event){
  $.get("providers/"+event.target.value+"",function(response,provider){
    $('#providers_id').empty();
    for(i=0; i<response.length; i++){
      $("#providers_id").append("<option value='"+response[i].id+"'>"+response[i].company+"</option>");
    }
    });
  });
});

所以,我发送网址以获取数据时遇到麻烦,我需要发送:

http://myapp.local/providers/1

但我不知道为什么它会发送当前与我的网址连接的网址:

http://myapp.local/prices/3/providers/1

显然我有404错误,我怎么只能发送第一个网址来获取我的数据? 抱歉我的英文不好!

2 个答案:

答案 0 :(得分:2)

只需在网址开头添加“/”

$.get("/providers/"+event.target.value+"",function(response,provider){
    $('#providers_id').empty();
    for(i=0; i<response.length; i++){
      $("#providers_id").append("<option value='"+response[i].id+"'>"+response[i].company+"</option>");
    }
    });
  });

答案 1 :(得分:0)

我认为更好的解决方案是命名你的路线

docker run ... -e DOCKER_API_VERSION=$(docker version --format '{{.Server.Version}}') ...

在$ .get()之前的js文件中放入以下url变量

Route::get('providers/{providers}','ProvidersController@getProviders')->name('anything');

然后在$ .get()

中使用此网址
var url = '{{ route('anything', ['providers'=>'']) }}'+'/'+event.target.value;