2017-08-08 250 views
0

我想从一个输入发送数据到我的应用程序的控制器在Laravel,我提供的类别ID和它返回一个jSON与相关的ID。阿贾克斯请求返回HTML页面

我有一个输入得到的数据

<label for="categoryMae">Nome da Categoria Mãe</label> 
     <input class="form-control" id="getCategoryMae" name="getCategoryMae" /> 

一个script传递给我的控制器

<script> 
$("#getCategoryMae").blur(function(){ 
    var cat_id = $(this).val(); 
    console.log(cat_id); 
    $.ajax({ 
    type: 'GET', 
    url: '{{route('getCategoryName')}}', 
    data: 'cat_id', 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(data){ 
     console.log(data.cat_id); 
    } 
    }); 

}); 
</script> 

,我想在我控制器(Route::get('/categories/getCategoryName', '[email protected]')->name('getCategoryName');

public function getCategoryName(Request $request) 
    { 
     $data = $request->all(); 
     dd($data); 
    } 
得到这个值

但代码返回HTML结构,而不是值

enter image description here

如何只返回值,而不是所有的结构和为什么会发生?提前致谢!

+0

尝试改变'数据:“CAT_ID”,''到的数据:{CAT_ID:CAT_ID}'并检查它的工作原理... – Laerte

+0

可能是被返回的HTML包含错误,这将是很好的检查其内容。 – Laerte

+0

您是否认真使用dd函数返回数据,或者这只是临时显示结果的方式? – ggderas

回答

1

我不认为你正在向控制器发送任何数据。试试这个,检查AJAX调用的数据属性。

<script> 
$("#getCategoryMae").blur(function(){ 
    var cat_id = $(this).val(); 
    console.log(cat_id); 

    var dataObject = {cat_id: cat_id}; 
    $.ajax({ 
    type: 'GET', 
    url: '{{route('getCategoryName')}}', 
    data: dataObject, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(data){ 
     console.log(data.cat_id); 
    } 
    }); 

}); 
</script> 

而且,我可以告诉你使用谷歌Chrome浏览器,你可以确保你送东西到服务器,您可以点击,去底部到查询字符串Prameters看您要发送的参数。 这里有一个很好的资源:Chrome Dev Tools