我正在使用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() )
进行AJAX调用时,X-Requested- With标头通常设置为XMLHttpRequest。Laravel的Request::ajax()方法建立在Symfony2方法的基础上,该方法仅检查此标头的存在。
X-Requested- With
XMLHttpRequest
Request::ajax()
在2012年10月,Angular.js 删除了此标头,因为他们认为它很少使用。
正如@Thrustmaster和您自己在评论中提到的那样,您需要设置:
$httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest"