2011-10-11 4 views
2

다음 코드를 사용하여 내 컨트롤러에 성공적으로 게시하고 있습니다. 그러나 성공에는 결코 오류가 발생하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?컨트롤러에서 Json을 되 돌리는 것은 결코 성공하지 못합니다.

JS :

$.ajax({ 
     url: '/Home/Subscribe', 
     type: 'POST', 
     dataType: 'json', 
     data: { email: $('#sube').val() }, 
     success: function (data) { 
      // get the result and do some magic with it 
      alert(data.foo); 

     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      alert(textStatus); 
     } 
    }); 

컨트롤러 :

[HttpPost] 
    public JsonResult Subscribe(string email) 
    { 
     return Json(new { foo = "bar", baz = "Blech" }); 
    } 

답변

2

IE에서 개발자 도구를 열려면 F12 키를 누릅니다. 네트워크 탭으로 이동하여 프로필러 시작을 클릭하십시오. 구독 작업에 요청 보내기 - 아래 목록에서 보낸 요청 및 반환 된 상태 코드의 세부 정보를 볼 수 있습니다. 요청을 더블 클릭하면 세부 정보가 표시됩니다. 그러면 응답 본문을 볼 수 있습니다. 서버 오류로 요청이 실패한 경우 응답 본문에 오류가 표시됩니다.

2

난 당신의 코드로 표시 한 잘못된 것은 당신이 URL을 하드 코딩 한 것입니다 :

url: '/Home/Subscribe' 

당신은이 작업을 수행해서는 안를 . 하는 ASP.NET MVC 응용 프로그램에서 URL을 생성 할 때 당신은 항상 URL 헬퍼를 사용한다 : 또한

url: '@Url.Action("Subscribe", "Home")' 

는 오류 콜백은 항상 명중되는 말을하지만 당신은 당신이 방화 광 또는 크롬 개발자 도구 모음에서 관찰 무슨 말을하지 않았다 AJAX 요청을 분석하려고했을 때 이 작업을 수행했다면 요청에 대한 정확한 원인을 알 수 있었을 것입니다. 왜냐하면 어떤 요청이 서버로 보내졌으며 서버가 어떤 응답을 클라이언트에 다시 보냈을 것이기 때문입니다.

+0

대린 감사합니다, 당신의 방법을 적용 할 것입니다. – jr3

+0

대린 - 후속, 어떻게 자바 스크립트 파일 내에서 URL을 해결하겠습니까? – jr3

+0

@Jreeter, 당신은 무엇을 의미합니까? 왜 자바 스크립트에서 URL을 해결하고 싶습니까? –

2

다음은 작동하는 jQuery ajax 스 니펫입니다. 귀하의 컨트롤러가 올바르게 보입니다. 난 당신이 실제로 중단 점을 사용하여 호출지고 확인한 것으로 가정합니다.

var p = { 
    email: $('#sube').val() 
}; 


$.ajax({ 
    url: '@Url.Action("Subscribe", "Home")' 
    type: 'POST', 
    data: JSON.stringify(p), 
    dataType: "text json", 
    contentType: "application/json", 
    success: function (data) { 
     // get the result and do some magic with it 
     alert(data.foo); 

    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
     alert(textStatus); 
    } 
}); 
관련 문제