一尘不染

Laravel angularjs Request :: ajax()始终为false

angularjs

我正在使用angularjs和laravel 4构建应用程序。一切都很好,但是我现在只允许XHR请求。

这就是我刚开始使用控制器时所拥有的。但是这个说法总是错误的。

    if (!\Request::ajax())
    {
        return Response::json(array('halt'=>Request::ajax()));
    };

在角度我正在使用标准的$ http服务。

angular.module('APP')
.factory("API", ($http,$q,appClient,apiURL) ->
 class FB
  constructor:->
    this.deferredData = $q.defer();
  info: (reload)->
    $http(
      method: "get"
      url: apiURL+'game/'+appClient+"/info"
    ).success((res)->
      dostuff()
    )

阅读 237

收藏
2020-07-04

共1个答案

一尘不染

进行AJAX调用时,X-Requested- With标头通常设置为XMLHttpRequest。Laravel的Request::ajax()方法建立在Symfony2方法的基础上,该方法仅检查此标头的存在。

在2012年10月,Angular.js
删除了此标头,因为他们认为它很少使用。

正如@Thrustmaster和您自己在评论中提到的那样,您需要设置:

$httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest"
2020-07-04