2013-08-28 3 views
1

현재 내 솔루션에는 두 가지 웹 역할이 있습니다. 하나는 기본 웹 응용 프로그램이고 다른 하나는 웹 응용 프로그램과 모바일 응용 프로그램에 대한 API 역할을하고 싶습니다. .웹 역할에서 다른 웹 역할로 게시 Windows Azure

둘 다 서로 독립적으로 작동하지만 웹 응용 프로그램의 역할보기에서 API 역할의 API 컨트롤러로 데이터를 게시하는 데 어려움을 겪고 있습니다.

는 API 컨트롤러의 방법입니다 :

public void Post([FromBody]string value) 
{ 
    var post = (Post)JsonConvert.DeserializeObject(value, typeof(Post)); 
    AddPost(post); 
} 

그리고 여기 게시하려고 뷰에서 자바 스크립트를하다에서 :

<script> 
    $(function() { 
     var onPost = function() { 
      $.post("http://localhost:8081/api/Post", 
       { 
        "value": $('#postForm').serialize() 
       } 
      ).success(function() { 
       alert("SUCCESS"); 
      }).fail(function() { 
       alert("FAILURE"); 
      }); 
     }; 
    }); 
</script> 

편집 : 내가

오류가 발생하지 않으며 두 경고 함수 중 하나가 호출되지 않습니다. 그러나이 이벤트를 발생시키는 버튼을 클릭하면 URL이 직렬화 된 양식의 항목을 포함하도록 변경됩니다.

+0

어떤 행동을하는지에 관해 더 많은 정보를 제공하면 도움이 될 수 있습니다. 오류가 있습니까? 또한 오류 콜백에 대한 아약스 게시물에서 더 많은 오류 정보를 얻을 수 있습니다. jqXHR을 얻는 방법에 대한 자세한 내용은 http://api.jquery.com/jQuery.post/를 참조하십시오. 실제로 어떤 오류가 발생했는지 확인할 수 있습니다. – MikeWo

+0

실패 콜백 관련 팁에 감사드립니다. 불행히도, 그것은 호출되지 않습니다. 더 설명하기 위해 게시물을 업데이트했습니다. –

+0

교차 도메인 호출 문제인 것으로 보입니다. Fiddler와 같은 도구를 사용하여 POST를 직접 수행하십시오. 할 수 있다면 크로스 도메인 아약스 요청을하는 법을 읽어보십시오. – Chandermani

답변

0

웹 응용 프로그램의 MVC 컨트롤러와 같은 서버 측에서 API 호출을하는 것이 좋습니다. 다른 사람들에게 노출시키지 않으려는 보안 키와 다른 것을 포함 할 수 있습니다. 자바 스크립트에서 다른 하위 도메인 또는 URL에 대한 API 호출을 직접 수행 할 때 교차 도메인 아약스 요청을 작성하게됩니다.

자바 스크립트에서 웹 응용 프로그램의 컨트롤러 동작에 대한 ajax 호출을 작성합니다. 웹 응용 프로그램은 통화중인 모든 서비스를 호출합니다.

POSt/GEt/PUt/DELETE 요청으로 피들러에서 API를 테스트 할 수도 있습니다.

자바 스크립트에서 직접 호출하고 다른 하위 도메인에서 웹 역할을 호스팅하려면 CORS 요청 : http://www.html5rocks.com/en/tutorials/cors/을 만들어야합니다. 이 관련 질문을 볼 수도 있습니다 : Running WebApi alongside MVC project in Azure

관련 문제