2009-11-13 3 views
0

JQuery ajax에 약간의 문제가 있습니다. IIS를 사용하여 웹 응용 프로그램을 호스팅하고 HTTP 처리기를 사용하여 POST 동사 만 활성화했습니다. JQuery 아약스를 사용하여이 http 핸들러에 데이터를 게시하고 있는데, 이는 개발 및 테스트 환경에서 잘 작동하며 대부분 프로덕션 환경에서도 잘 작동합니다. 그러나 때때로 우리는 서버에 빈 포스트 데이터를 얻고 있습니다. IISLog에서 csBytes를 살펴보면 다른 성공 게시물 요청과 비교할 때 매우 적은 것으로 나타났습니다. 우리는 JSON.js를 사용하여 javascript 객체를 원시 json 문자열로 다시 변환하고 서버에 게시하기위한 최신 jquery.1-3.js를 사용하고 있습니다. 왜 이런 일이 일어나는 지 알아?JQuery Ajax Post가있는 빈 포스트

답변

0

확실하지 않지만 브라우저 버그로 인한 것일 수 있습니다. 서버에 빈 게시물을 보내고 있기 때문에 jquery post 메서드가 제대로 작동하지만 일부 경우 json 변환이 작동하지 않는 것처럼 보입니다.

이 빈 값을 게시하는 USER-AGENT에 대한 IIS 로그 파일이 있어야합니다.

물론 누군가가 서버에 수동으로 POST를하고있는 중입니다 ... 취약점을 악용하려고합니다.

0

브라우저 구성이나 사용자가 수동으로 게시 할 때 문제가되지 않는다고 생각합니다. 같은 세션의 HTTP 처리기가 동일한 클라이언트 IP 및 사용자 에이전트로 일부 게시물 데이터를 성공적으로 수신했습니다. 우리 사용자는 수동 게시를 할 정도로 전문가는 아닙니다. 따라서 브라우저 구성에 문제가있을 수 있다고 생각하지 않습니다.

1

동일한 문제가 발생했습니다. tamperdata를 사용하여 응답 헤더가 404 오류임을 확인했습니다. 경로가 올바르게 매핑 되었습니까?

예 : MVC를 들어

$.post('<%= VirtualPathUtility.ToAbsolute("~/Reservation/UpdateHeadCount") %>', { 
     id: '<%= Html.Encode(Model.reservation_id) %>', 
     newHeadCount: SelectedVal 
}); 
0

, Url.Content 도우미를 사용 : 이것은 모두에서 작동

$.post('/Reservation/UpdateHeadCount', { 
     id: '<%= Html.Encode(Model.reservation_id) %>', 
     newHeadCount: SelectedVal 
}); 

: 이는 IIS 서버에서 개발 내 로컬 컴퓨터에서 일했다,하지만 $ .post ('@ Url.Content ("~/Settings/Load")', OnSettingsLoaded);