Laravel angularjs 요청::ajax()는 항상 false입니다.
angularjs와 larabel 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
header는 보통 으로 설정됩니다.XMLHttpRequest
라라벨의Request::ajax()
메서드는 단순히 이 헤더의 존재를 확인하는 Symfony2 메서드 위에 구축됩니다.
2012년 10월 Angular.js는 이 헤더를 거의 사용하지 않는다고 판단하여 삭제했습니다.
@Thrustmaster와 자신의 코멘트에 기재되어 있듯이, 다음과 같이 설정할 필요가 있습니다.
$httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest"
프런트 엔드 각도 어플리케이션을 수정하지 않고(또는 변경할 수 없음), Rarabel 코드를 수정하여 Angular JS AJAX 요청과 다른 요청을 구별하는 경우에도 다음을 사용할 수 있습니다.
if(Request::wantsJson()) {
// Client wants JSON returned
} else {
// Client does not want JSON returned
}
그wantsJson
방법은 표준에 의존합니다.Accepts
HTTP 헤더(비표준이 아닌)X-Requested-With
header)가 있는 경우application/json
Angular JS가 디폴트인 채로, 일부러 삭제하지 않는 한, 이 방법은 신뢰할 수 있습니다.
추가할 위치를 찾고 있는 AngularJs 신입사원용$httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest"
다음은 예를 제시하겠습니다.
var angularApp = angular
.module('angularApp', [
'ngResource',
])
.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
}]);
언급URL : https://stackoverflow.com/questions/20475460/laravel-angularjs-requestajax-always-false
'prosource' 카테고리의 다른 글
워드프레스에서 코멘트 후 참조 페이지로 리다이렉트하려면 어떻게 해야 합니까? (0) | 2023.02.12 |
---|---|
TypeScript에서 React Stateless 기능 구성 요소를 사용하는 방법 (0) | 2023.02.12 |
Facebook Auth with AngularJS 및 장고 REST 프레임워크 (0) | 2023.02.08 |
EC2의 WordPress에서 플러그인을 설치하려면 FTP 자격 증명이 필요함 (0) | 2023.02.08 |
Jackson - Java 목록을 json 배열에 쓰는 가장 좋은 방법 (0) | 2023.02.08 |