왜 같은 URL을 제출하는 경우 : ". 잘못된 요청 - 유효하지 않은 URL의 HTTP 오류 400 요청 URL이 유효하지 않습니다"webmatrix cshtml에서 HTTP-400 잘못된 요청 오류가 발생하는 이유는 무엇입니까?
localhost:38245/TeamWork/Group/1/LONG-COMMENT-POSTED-BY-USER
,
왜 같은 URL을 제출하는 경우 : ". 잘못된 요청 - 유효하지 않은 URL의 HTTP 오류 400 요청 URL이 유효하지 않습니다"webmatrix cshtml에서 HTTP-400 잘못된 요청 오류가 발생하는 이유는 무엇입니까?
localhost:38245/TeamWork/Group/1/LONG-COMMENT-POSTED-BY-USER
,
URL의 기본 최대 길이는 IIS에서 4096입니다. 사용자가 게시 한 의견으로 위반했을 수 있습니다. 일반적으로 이러한 종류의 데이터를 전송하는 가장 좋은 방법은 URL 대신 POST를 사용하는 것입니다. IIS 구성의 requestLimits 섹션에서 maxUrl 값을 더 적절한 크기로 조정할 수 있습니다. http://msdn.microsoft.com/en-us/library/ms689462%28v=vs.90%29.aspx
첫째로 HTTP 400 오류는 클라이언트에서 오류가 발생한 경우를위한 것입니다. 자신을 알아 채 셨으므로 잘못된 요청 오류입니다. 따라서 잘못된 구문으로 인해 요청을 수행 할 수 없다는 것을 의미합니다. Mike Brind가 언급했듯이 URL의 최대 길이 (기본값 인 어쨌든 기본값)를 초과했을 가능성이 가장 큽니다.
두 번째 이유는 URL로 긴 게시물을 "제출"하려고하는 이유는 무엇입니까? 대신 POST 메소드를 사용하십시오. 이를 수행하는 방법은 Jquery의 Post 메소드를 사용하여 수행하는 것입니다. this을 참조하십시오. 또는 단순히 양식의 submit 메서드를 OnClick 메서드를 통해 호출하거나 사용자가 양식을 제출하는 것입니다.
POST는 대용량 데이터 전송에 적합합니다. 따라서 클라이언트 측에서 데이터를 제출하는 가장 쉬운 방법은 POST를 사용하여이를 달성하는 것입니다.
자신이 질문의 코드 부분에서 언급했듯이, 사용자가
localhost:38245/TeamWork/Group/1/LONG-COMMENT-POSTED-BY-USER
긴 코멘트, 웹 사이트의 web.config
파일에있는 한계 안에 있어야합니다.
두 번째로, 어떤 서버도 사용자가 악성 코드를 게시하려고 시도하고 있다고 생각하는 매우 긴 URL을 허용하지 않습니다. 또한 짧은 URL을 사용하면 데이터를 덜 소비하므로 데이터 전송에 적합합니다.
요청의 제한 사항에서 URL은 4096 바이트 미만이어야하며 4KB 만 이해하면됩니다. 그렇다면 모든 URL이 4KB가 될 것이라고 생각하십니까?
Mike가 긴 데이터를 보내려면 POST 요청을 사용하도록 제안 했으므로 HttpPost 요청을 사용하여이 유형의 긴 데이터를 보내도록 제안합니다. 이렇게하면 브라우저가 데이터를 암호화하여이를 요청에 대한 첨부 파일로 보냅니다.
내 문제는 XMLHttp 리퀘스트를 사용하여 (예를 들어) 사용자가 주석을 쓰는 텍스트 영역 (textarea) 값을 가져오고 내가 보여준 것과 같은 링크 형식으로 전송한다는 것입니다. "LONG-COMMENT-POSTED-BY-USER"를 databse에 삽입하는 cshtml 파일에 추가하십시오. 그래서 나는 언제나 긴 글을 쓸 때 저에게 400 에러를 보여줍니다. 여전히 "게시물"을 사용해야합니까? – Brunodeluk
사용해보기 : http://www.openjs.com/articles/ajax_xmlhttp_using_post.php – DSF