이상한 문제가 있습니다. 동일한 도메인의 WebAPI에 대해 clientSide App (jquery)을 실행하고 있습니다. 내 로컬 컴퓨터의 IIS에서 루트 웹 사이트 (사이트 -> MyApp)로 호스트하면 OK (게시 및 게시)가 작동합니다. 일반적인 API 호출은 다음과 같습니다 : 나는 하위 응용 프로그램으로, IIS에서 "기본 웹 사이트"의 아래를 개최 할 때,Ajax 웹에 게시 API가 성공하지만 기본 웹 사이트 (IIS)에서 호스팅 할 때 클라이언트 측에서 실패 함
$.get("api/GetList", null, function (data) {
var list = data;
})
을하지만, 일반적인 API 호출은 다음과 같습니다
$.get("MyApp/api/GetList", null, function (data) {
var list = data;
})
모든 GET 호출은 정상적으로 작동하지만 POST 호출은 이상하게 작동합니다. 나는 POST 호출과 같이합니다
$.ajax({
url: "MyApp/api/Fields",
type: 'POST',
dataType: 'json',
contentType: false,
cache: false,
processData: false,
data: data,
success: function (res) {
var x = res;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
//
}
});
웹 API를 방법은 다음과 같습니다
[HttpPost]
[Route("api/Fields")]
public async Task<IHttpActionResult> Post() {...
나는 POST 호출을 실행하면,이 서버에 도달하고 서버 방법은 잘 작동하지만, 반환하면 오류가 발생합니다. 여기에서 : http://localhost/MyApp/index.html 내가 버튼을 제출하고이 가져 오기를 클릭 (작업이 서버 측에서 성공에도 불구하고!) : HTTP 오류 404.0을 - 당신이의 MyApp에 대한 경로를 볼 수 http://localhost:80/api/Fields?input_1=sometext
그래서 요청 된 URL 찾을 수 없음 사라졌으며 IIS는 요청을 GET 한 것처럼 처리합니다.
같은 구성으로 IIS의 테스트 서버에서 실행될 때 동일한 코드가 1 : 1이면이 오류없이 정상적으로 작동합니다. 아이디어가 있으십니까?
어쩌면 다시 말하면 짧을 것입니다. http : // localhost/MyApp/api/fields에 AJAX Post를 사용합니다 (VS2015의 F5를 사용하여 올바른 방법에 도달했음을 알 수 있습니다). 그러나 응답이 있습니다. HTTP 오류 404.0 - 찾을 수없는 요청 된 URL http : // localhost : 80/api/Fields? input_1 = 123 및 : 요청한 리소스가 http 메서드 'get'을 지원하지 않습니다. 1. POST였습니다. 2. http : // localhost/MyApp/api/fields가 아닌 http : // localhost : 80/api/Fields를 호출했습니다. – amira