2017-02-03 5 views
1

푸른 웹 응용 프로그램에서 호스팅되는 Laravel 5.3 응용 프로그램에서 PUT 요청을 보내고 있습니다. 그러나 지연 응답 504 (게이트웨이 제한 시간)이 나타납니다. POSTman (크롬 확장) 작업을하는 동안.Azure에서 호스팅되는 Laravel 5.3에서 Angular Put 요청이 작동하지 않습니다.

이 내 각 코드입니다

put : function (id, params) { 
    params.api_token = TOKEN; 
    return $http.put(url+'/lead/'+id, params); 
}, 

그리고 이것은 나에게 줄 것입니다 실행하는 504 (게이트웨이 시간 초과) 나는 또한이

분 1 일 이후에 설치 의 web.config가 처리 할 수 ​​&을 PUT 지우다. 자세한 내용은 here을 참조하십시오.

<handlers> 
    <remove name="PHP54_via_FastCGI" /> 
    <add name="PHP54_via_FastCGI" path="*.php" verb="GET, PUT, POST, HEAD, OPTIONS, TRACE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK" modules="FastCgiModule" scriptProcessor="D:\Program Files (x86)\PHP\v5.4\php-cgi.exe" resourceType="Either" requireAccess="Script" /> 
</handlers> 
+0

[이 게시물] (https://social.msdn.microsoft.com/Forums/azure/en-US/c5aa7b7b-59e6-4644-999f-b7f06eb79bb7/azure-http-504-gateway -timeout-wlong-requests) 도움이 될까요? –

+0

아니요, PUT 요청에만 문제가 있습니다. DELELTE 요청이 정상적으로 작동합니다. –

답변

0

Apache와 IIS 서버가 다르기 때문입니다. IIS는 기본적으로 PUT 및 DELETE를 처리하지 않습니다. 또한 PUT 요청에 대한 매개 변수를 다르게 처리합니다.

본문 대신 ../resource?param1=value1과 같은 쿼리 문자열로 보내야합니다. AKA x-www-form-urlencodedThis article explains it thoroughly

각도에 따라, 이것은 나를 위해 일했습니다.

function (id, params) { 
     params.api_token = TOKEN; 
     var params = $httpParamSerializerJQLike(params); 
     return $http.put(url+'/lead/'+id+'?'+params); 
    } 

참고 : 또한, 귀하의 web.config가 이러한 요청을 처리 할 수 ​​<handler> 태그를 필요로한다. 정의 됨 here