2017-11-21 10 views
0

포스트 백, Ajax 또는 표준 MVC 양식 제출의 모든 종류는 상태 코드 301을 반환합니다. 액션이나 컨트롤러의 차이는없는 것으로 보입니다. Chrome에서 Firefox로 브라우저를 변경해도 도움이되지 않았습니다.포스트 백은 항상 상태 코드 301을 반환합니다. 영구적으로 이동합니다.

<script> 
$('.zzz').click(function (e) 
{ 
    e.preventDefault(); 
    e.stopPropagation(); 

    $.ajax({ 
     url: '/XXX/yyy', 
     data: { test: "hello" }, 
     type: "post", 
     success: function() { alert("success"); }, 
     error: function() { alert("error"); } 
    }); 
}); 
</script> 

컨트롤러 :

Request URL:http://localhost:47038/xxx/yyy 
Request Method:POST 
Status Code:301 Moved Permanently 
Remote Address:[::1]:47038 
Referrer Policy:no-referrer-when-downgrade 

Response Headers 
================= 
Access-Control-Allow-Origin:* 
Content-Length:154 
Content-Type:text/html; charset=UTF-8 
Date:Tue, 21 Nov 2017 16:02:23 GMT 
Location:http://localhost:47038/xxx/yyy/ 
Server:Microsoft-IIS/10.0 
X-Frame-Options:SAMEORIGIN 
X-Powered-By:ASP.NET 
X-SourceFiles:=?UTF-8?B?QzpcdmF1bHRccHJpbnRlcnBpeG12Y3VpXFByaW50ZXJQaXhNdmNVSVxYWFhcWVlZ?= 

Request Headers 
================ 
view source 
Accept:*/* 
Accept-Encoding:gzip, deflate, br 
Accept-Language:en-GB,en-US;q=0.9,en;q=0.8 
Connection:keep-alive 
Content-Length:10 
Content-Type:application/x-www-form-urlencoded; charset=UTF-8 
Cookie:ASP.NET_SessionId=rargvavdg0reeuhqvqkznsaj; MachineToken=a2fec363-6318-4ec3-8d2c-0eee116fc778; __RequestVerificationToken=80gj5joNWUpBjgjOsxkV0SkDwhrX3fNbzYTZrTaUGpJXlIEY7nyguehSDpz525JKyNfjlI5Two-poQs1dC2jw0kWnpvnK74iz4X3KV5MtSI1 
Host:localhost:47038 
Origin:http://localhost:47038 
Referer:http://localhost:47038/xxx/Index/?product=puzzle 
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36 
X-Requested-With:XMLHttpRequest 

Form Data 
========== 
test:hello 

GET 요청이 제대로 작동하는

public class XXXController : AsyncController 
{ 
    [HttpPost] 
    public ActionResult YYY() 
    { 
     return null;  // ====== NEVER REACHES HERE 
    } 
} 

헤더, 그것은 리디렉션되고 단지 게시하는 것입니다.

Action 메서드가 실행되는 대신 301 "Moved Permanently"이 반환되는 이유는 무엇입니까?

+0

요청 파이프 라인을 확인하십시오. 그 반응을 반환하는 액션/결과 필터가있을 수 있습니다. – Shyju

+0

RequireSSL 속성에서이를 수행하는 코드가 있지만, 호출되지 않는다고 말할 수있는 코드가 있습니다. – buffjape

답변

0

솔루션은 포스트 백 URL의 끝에 슬래시를 넣어했다 : 하루의 일의

url: '/XXX/yyy' ==> 301 Moved Permanently 
url: '/XXX/yyy/' ==> 200 OK 

아주 embarassing하고 폐기물.