2013-07-19 3 views
0

:만들기 AJAX 호출 내가 아약스와의 API 호출을 만들려고 노력하고

svc.authenticateAdmin = function (id, code) { 
    $.ajax({ 
     url: 'api/event/authenticate', 
     data: { 'id': id, 'code': code }, 
     datatype: 'json', 
     contentType: 'application/json', 
     type: 'GET', 
     success: function (data) { 
      App.eventBus.publish('authenticationComplete', data); 
     } 
    }); 
}; 

API를 컨트롤러에있어서

[ActionName("All")] 
public bool Authenticate(int id, string code) 
{ 
    var repo = new MongoRepository<Event>(_connectionString); 
    var entry = repo.FirstOrDefault(e => e.Id == id); 
    return entry.AdminPassword == code; 
} 

하지만 404 오류가 점점 오전 : urlstuff/api/event/authenticate? id = 123 & 코드 = abc 404 (찾을 수 없음)

나는 (내가 쓰지 않은) 많은 알려진 작업 호출로부터 구현을 복사했습니다.

svc.getEventFromCode = function (code) { 
    $.ajax({ 
     url: '/api/event/', 
     data: { 'code': code }, 
     dataType: 'json', 
     type: 'GET', 
     success: function (data) { 
      App.eventBus.publish('loadedEvent', data); 
      App.eventBus.publish('errorEventCodeExists'); 
     }, 
     error: function() { 
      App.eventBus.publish('eventNotFound', code); 
     } 
    }); 
}; 

svc.getEventPage = function (pageNumber) { 
    $.ajax({ 
     url: '/api/event/page/', 
     data: { 'pageNumber': pageNumber }, 
     dataType: "json", 
     contentType: "application/json", 
     type: 'GET', 
     success: function (data) { 
      App.eventBus.publish('loadedNextEventsPage', data); 
     } 
    }); 
}; 

그러나 어느 쪽도 API에이 개 매개 변수를 전달합니다 :처럼 그것은 보인다. 나는 정말 작은 뭔가 같은데요 :/

+0

브라우저를 통해'urlstuff/api/event/authenticate? id = 123 & code = abc 404'주소로 직접 접근 할 수 있습니까? – user1477388

+0

예, 방문 페이지로 리디렉션됩니다. – jokulmorder

답변

0

문제는 url에 있습니다. 응용 프로그램이 serverserver에 배포하는 경우

분명히, 아약스 root

로 URL의 시작 / 해석, 해당 URL은 api/event/page/http://localhost:8080/AppName/

같은 것이, 아약스 http://localhost:8080/AppName/api/event/page/ 또는 URL을 해결하다 현재 디렉토리와 관련된 URL /api/event/page/와 그러나

는, URL은 그것이 도움이 희망 http://localhost:8080/api/event/page/

에 해결됩니다.

1

액션 이름을 "인증"이라고합니다,하지만 당신은 작업의 이름을 변경합니다 다음 포함했다 :

[ActionName("All")] 

이것은 URL을 만든다을

/api/event/all 
+0

이 속성을 제거했지만 여전히 404가 나타납니다. – jokulmorder

+0

명확히하기 위해 동일한 404가 아닌 일반적인 "서버가 응답 한 서버"입니다. – jokulmorder

+0

자바 스크립트에서 URL이 올바른지 확인하십시오. 현재있는 것처럼'api/event/authenticate'가되어야합니까? 아니면 선행 슬래시로'/ api/event/authenticate' 여야합니까? 슬래시가 없으면 현재 실행중인 작업과 관련이 있습니다.하지만 절대적으로 원하는 것 같습니다. –

관련 문제