2017-01-17 2 views
0

저는 웹 개발에 익숙하지 않지만 작업을 위해 만든 기존 Windows 서비스 응용 프로그램 용 웹 API를 만들고 싶습니다.OWIN 자체 호스팅 API에 HTTP GET 요청을하는 방법은 무엇입니까?

내 목표는 누군가가 이메일을 입력하고 메일 링리스트에 가입 할 수있는 텍스트 입력 필드로 구성된 간단한 웹 앱을 만드는 것입니다.

내 기존 프로젝트에서 웹 API를 그래서 난이 가이드 바라 보았다 자기 호스트에 OWIN를 사용하는 방향으로 지적되었다 시작하기 :

https://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api

이 안내서는 콘솔 응용 프로그램의 호출을 보여줍니다 API를 표시하고 있지만 웹 앱에서도 똑같이하고 싶었습니다. 그래서 OWIN과 함께 콘솔 응용 프로그램을 사용하여 'Getting Started with ASP.NET Web Api 2'가이드에서 수행 된 작업을 수행하려고했습니다. 내 콘솔 응용 프로그램을 시작할 때

, 나는 http://localhost:8080/api/values/1를 입력 할 수 있습니다 그리고 내가 생각 <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">value</string> 웹 서버가 실행되는 것을 의미하고 내 ValuesController에서 돌아 오는거야 내 문자열 값을 얻기 위해 요청에 응답 얻을.

그러나 나는 API를 호출하여 value을 얻는 간단한 웹 페이지를 만들려고했지만 그걸 알아낼 수 없었습니다.

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"></script> 
<script> 
    var uri = "http://localhost:8080/api/values/1"; 

    $(document).ready(function() { 
     $.getJSON(uri) 
     .done(function (data) { 
      $('#value').text("done"); 
     }) 
     .fail(function (jqXHR, textStatus, err) { 
      $('#value').text('Error: ' + err); 
     }); 

    }); 
</script> 

을 그리고 난 그냥 페이지에 인쇄 Error:를 얻을 :

지금 내 index.html을이 본문에 다음있다. 다시 한 번 웹 관련 기술에 익숙하지 않으므로 모든 지침을 매우 높이 평가할 수 있습니다.

+0

개발자 도구는 무엇이라고 말합니까? 그들은 디버깅 할 때 꽤 도움이 될 수 있습니다! 또한 크롬을 사용하는 경우 자바 스크립트에 중단 점을 넣고 jqxhr 및 textStatus 객체가 무엇인지 확인할 수 있습니다. 그저 던져 버리면 쓸모가 있습니다! –

+0

또한, 독립 실행 형 앱 또는 크롬 플러그인 중 하나 인 우편 배달부 도구는 API 끝점을 테스트하는 데 매우 유용합니다. 우편 게시자를 사용하여 API를 확인한 다음 자바 스크립트로 작업 할 가치가 있을지도 모릅니다. API가 작동하지 않는다면 혼란스러워 할 필요가 없습니다! –

+0

안녕하세요, 크리스, 의견 주셔서 감사합니다. 나는 아직도이 도구들을 통해 자신의 길을 탐색하려고 노력하고있다! 우체부 크롬 플러그인을 사용하여 http : // localhost : 8080/api/values ​​/ 1와 함께 GET을 보냈습니다. 그리고 "value"가 api가 작동했다고 생각하는 몸에 나타났습니다. – riyu

답변

0

좋아요, 댓글 토론에서 (앱 디버깅을 돕는 것). 브라우저의 원본 교차 보안 정책은 웹 페이지가 다른 도메인에있는 데이터 원본을 호출하는 것을 제한합니다. 도메인은 다른 URL이거나 같은 URL에있는 다른 포트입니다. http://localhost:80

은에서 다른 URL/도메인입니다 :

http://localhost:81

두 가지 솔루션이에 있습니다 중 하나를 만들기 위해 JSONP, 또는 CORS를 활용 JSONP는 기본적으로 함수 호출에서 json 데이터를 래핑합니다. api 호출이 반환되면 보안 제한을 무시하고 콜백/함수 호출을 실행합니다. 그러나 JSONP와 CORS 모두 솔루션이 제공 서버 지원을 ... 필요

, 같은 도메인 서버 당신에게, 따라서 더 크로스 도메인 문제를 의미하지, 당신은 API에서 사용하려는 웹 페이지를 봉사 !! !!

다행히도 웹 통화로 인해 실망 할 수 있습니다.

관련 문제