Javascript 如何在Laravel上使用Ajax?
我编写了一个JavaScript代码来使用Ajax处理我的请求。因此,我的代码定义如下:Javascript 如何在Laravel上使用Ajax?,javascript,ajax,laravel,Javascript,Ajax,Laravel,我编写了一个JavaScript代码来使用Ajax处理我的请求。因此,我的代码定义如下: if(document.getElementById('category')){ document.getElementById('category').addEventListener('click', () => { var query = document.getElementById('category').value; if(query !== '')
if(document.getElementById('category')){
document.getElementById('category').addEventListener('click', () => {
var query = document.getElementById('category').value;
if(query !== ''){
var httpRequest = new XMLHttpRequest();
httpRequest.open('GET', "http://127.0.0.1:8000/category/fetch");
httpRequest.send();
console.log(httpRequest);
}
});
}
其中我的类别
来自我的表格:
我的get请求指的是我的函数:
public function fetch(Request $request){
dd("You hit me: ".$request);
$category = Category::where('name', 'like', $request['category'])->first();
return response()->json($category);
}
但是回到我的JavaScript,为什么我的get请求没有命中我的fetch函数?在浏览器上手动执行时,它会给我结果,我的控制台也会给我这种结果:
response: "<script> Sfdump = window.Sfdump || (function (doc)"
响应:“Sfdump=window.Sfdump | |(函数(doc)”
如下图所示。
好问题
为了提供一点上下文,Laravel是在另一个PHP框架Symfony的基础上构建的,并共享许多包。其中一个包叫做var dumper
,它在Laravel中启用了dd
helper函数
看看这个直接取自dd
helper包的示例:
//...
<script>
Sfdump = window.Sfdump || (function (doc) {
//...
/。。。
Sfdump=window.Sfdump | |(函数(doc){
//...
看起来很熟悉吗?如果你查看了你所说的在浏览器中手动工作的页面的源代码,你会看到完全相同的代码。结果表明,你在AJAX请求中看到的内容毕竟是正确的——只是未经浏览器转换的原始HTML内容
如果您想输出非dd内容(如中所示,不使用脚本标记和其他花哨的内容),请尝试使用PHP的内置方法(仅用于调试!),或者只使用Laravel的内置
response()->json
方法
希望有帮助