Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5 jquery getJSON不工作_Php_Jquery_Json_Laravel 5_Csrf - Fatal编程技术网

Php Laravel 5 jquery getJSON不工作

Php Laravel 5 jquery getJSON不工作,php,jquery,json,laravel-5,csrf,Php,Jquery,Json,Laravel 5,Csrf,我正在尝试从Laravel5上的API获取JSON数据,该路由为我提供了正确的 浏览器中的数据,但尝试在JQuery中访问此路由时失败。 路线是: 最终在浏览器中工作,数据以json格式显示 但是这个脚本失败了: $(document).ready(function(){ $("button").click(function(){ $.getJSON("http://localhost:8000/search/student/all", function(resul

我正在尝试从Laravel5上的API获取JSON数据,该路由为我提供了正确的 浏览器中的数据,但尝试在JQuery中访问此路由时失败。 路线是:

最终在浏览器中工作,数据以json格式显示 但是这个脚本失败了:

 $(document).ready(function(){
     $("button").click(function(){
        $.getJSON("http://localhost:8000/search/student/all", function(result){
            $.each(result, function(i, field){
                $("div").append(field + " ");
            });
        });
    });
});
我将localhost:8000替换为127.0.0.1:8000,但没有任何更改

注意:我使用Laravel生成了json响应

$students=App\Student::all();
return response()->json($students);

在jquery中,您可以执行以下操作

$.get( "http://localhost:8000/search/student/all", function(data ) {
  var obj = jQuery.parseJSON(data);
  console.log(obj);
});
另一种可能是使用jsonp

JSONP实际上是克服XMLHttpRequest相同域策略的简单技巧。(正如您所知,不能将AJAX(XMLHttpRequest)请求发送到其他域。)

像这样试试

<script type="text/javascript">
     $(document).ready(function(){
 $("button").click(function(){
    $.getJSON("http://localhost:8000/search/student/all", function(result){
        $.each(result.students, function(i, field){
            $("div").append(field.name + " ");//name is database field name such as id,name,address etc
        });
    });
});
</script>

谢谢,但问题仍然是相同的,在浏览器上运行良好,但在jquery中没有检索到结果。确定日志给我以下错误:跨源请求被阻止:同源策略不允许读取远程资源:CORS标头“Access Control Allow Origin”缺失。如果有帮助,您可以将其作为正确答案接受。这就是堆栈溢出的工作原理:)@sumit在传递要作为JSON响应打印的集合时,不需要使用
toJson
。OP对他们的PHP代码所做的一切都很好。是的,他的问题与“CORS头”有关。我已经编辑了我的帖子
<script type="text/javascript">
     $(document).ready(function(){
 $("button").click(function(){
    $.getJSON("http://localhost:8000/search/student/all", function(result){
        $.each(result.students, function(i, field){
            $("div").append(field.name + " ");//name is database field name such as id,name,address etc
        });
    });
});
</script>
$students=App\Student::all();
echo json_encode($students);//or return $students->toJson();