2012-07-16 2 views
0

내 jQuery $ .post 호출이 내 환경에서 정상적으로 작동합니다. 그러나 생산에, $ .posts은 신비 반환을 가져으로 전환되고있다 (404)

데브 전화 : $ .post ('/ 홈/Destaques')가

생산 호출 (호출이 확인을 작동) :

데브 : 서버 : 마이크로 소프트 IIS $ .post ('/ 홈/Destaques')는 GET/홈/Destaques (찾을 수 없음)/(404)

즉 응답 헤더 사이의 차이가 있습니다를 생산 /7.0 X-AspN ET-버전 : 4.0.30319 X-AspNetMvc-버전 : 2.0

제작 : 서버 : 마이크로 소프트 IIS/6.0 X-ASPNET-버전 : 2.0.50727 (NO AspNetMvc 헤더)

왜 POST가 GET이됩니까?

+0

상대 URL이 변경된 것 같습니다. –

+0

false를 모르면 Action Attribute를 사용하십시오. Destaques에 대한 조치입니다, 사용 [HttpPost] –

+0

@ jSang 나는 상대 URL이 같다고 생각합니다 :/Home/Destaques? – pedroos

답변

1

위치를 지정하는 동안 @Url.Action을 사용하십시오. 그리고 이것은 발생하는 문제의 가장 좋은 예이며 Url.Action의 주된 이유는 MVC에 소개되었습니다.

편집 -

야가 무슨 일하는 것은 우리가 루트 자체에하지 않을 수 있습니다 배포 방법 사촌 같은 목적 Url.Action 또는 Url.Content를 사용하는 것이 발생한다.

비유는 다음에 매핑 될 수 있습니다 : 목적지에 도달하는 방법 사이에 어딘가가 없어 졌을 때 다른 사람에게 목적지로가는 길을 물어 보면 {오른쪽 - 오른쪽 - 왼쪽 - 오른쪽}으로 응답하고 거기에 있습니다. 그러나 당신이 같은 지점에 있지 않고 그런 식으로 따라 간다면 이것은 작동하지 않을 수도 있습니다.

따라서 서버에서도 마찬가지입니다. 하위 사이트에 있었을 때 깊이 수준이 다르기 때문에 탈출구를 찾을 수 없었습니다. 변경 한대로 작동하기 시작했습니다. AFAIK이 경우입니다.

Url.Action 문서를 읽으십시오. 예를 들면 다음과 같습니다. Scott Guthrie's(MVC GURU) blog

+0

+1은이 치료법을 제안했을 것입니다 (많은 경우에 있습니다) –

+0

이 경우에는 위치가 정상이라고 생각합니다./Home/Destaques는 두 환경에 모두 있습니다. – pedroos

+1

@ PedroSobota -이 동작 만 발생하거나 다른 동작이 해결 되나요? 배치하는 동안 MVC 라우팅을 처리하기위한 핸들러를 추가 했습니까 ?? 로컬은 IIS/7.0이고 프로덕션은 IIS 6.0입니다. IIS 6에서 배포하는 동안 약간의 수정이 필요합니다. URL 라우팅을 기본적으로 지원하지는 않습니다. 이를 위해 처리기가 추가됩니다. – bhuvin