홈>
이 문제가 발생하여 알아낼 수 없었습니다. ASP.NET Core 2와 Ajax를 사용하고 있습니다.
이것은 JavaScript 디버거가 말하는 것입니다 :
와이즈 비즈이것은 내 JavaScript 코드입니다 :
XML Parsing Error: no root element found Location: http://localhost:52617/api/favorites/Line Number 1, Column 1:
그리고 내 API :
$(".js-toggle-fav").click(function (e) {
function sendPost() {
console.log("inside post send");
var button = $(e.target);
$.ajax({
type: 'POST',
url: "http://localhost:52617/api/Favorites/",
data: {"EventId": @Model.Event.EventId},
contentType: "application/json; charset=utf-8"
});
}
$.getJSON("http://localhost:52617/api/favorites/@Model.Event.EventId", function (data) {
if (data == null) {
console.log("fav is null");
sendPost();
fav.addClass(toggling);
fav.text("unfav");
}
else {
console.log("fav is NOT null");
sendPost();
fav.removeClass(toggling);
fav.text("fav");
}
);
});
Postman이나 restclient로이 작업을 수행하면 모든 것이 매력처럼 작동합니다! Ajax에서는 그렇지 않습니다.
와이즈 비즈 와이즈 비즈 파일에 이와 같은 작업을 수행하는 더 많은 jQuery 및 JavaScript 코드가 있으며 작동합니다! 모든 솔루션 인터넷에서 확인했지만 작동하지 않습니다.[HttpPost]
public async Task<IActionResult> PostFavorite([FromBody] FavoriteDto favorite)
{
if (!ModelState.IsValid)
{
Console.WriteLine(ModelState.ValidationState.ToString());
return BadRequest(ModelState);
}
var uid = _userManager.GetUserId(HttpContext.User);
var fav = await _context.Favourites.SingleOrDefaultAsync(x => x.EventId == favorite.EventId && x.UserId == uid);
if (fav == null)
{
_context.Favourites.Add(new Favorite { EventId = favorite.EventId, UserId=uid });
}
else
{
_context.Favourites.Remove(fav);
}
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (FavoriteExists(favorite.EventId))
{
return new StatusCodeResult(StatusCodes.Status409Conflict);
}
else
{
throw;
}
}
return Ok(favorite);
}
-
답변 # 1
-
답변 # 2
DELETE
중에이 오류가 발생했습니다 ASP.Net Core 2.1 웹 API를 호출하십시오. 나는[FromBody]
를 제거DELETE
에서 예상 된 모델에서public async Task<IActionResult> Delete(MyModel body) { // Just an example await DoSomeWork(body); return StatusCode(200); }
StatusCode
로 일부 내용을 반환 한 후 이 예제에서는 단순한 문자열로 오류가 사라졌습니다. 따라서 다음 코드는 Firefox에서 오류를 피해야합니다.public async Task<IActionResult> Delete(MyModel body) { // Just an example await DoSomeWork(body); return StatusCode(200, "Deletion Successfull"); }
-
답변 # 3
다른 답변에 추가하기 위해이 오류는 jQuery ajax가 유효한 JSON을 기대하거나 내용이 전혀없는 빈 문자열 응답을 얻는 경우에도 발생할 수 있습니다.
data
의 값을 확인done
에서 콜백, 빈 문자열 인 경우""
undefined
보다는 상태 코드204 (No Content)
를 반환하도록 서버를 수정해야합니다.200 (OK)
대신 내용이 없습니다. WebAPI2에서 이것은StatusCode(HttpStatusCode.NoContent)
를 반환하는 것을 의미합니다.Ok()
대신 .
관련 자료
- c# - 영역에서 ASPNET Core MVC의 '보기를 찾을 수 없음'오류를 해결하려면 어떻게하나요?
- android - "에서 발견 된 예기치 않은 요소 "라는 오류가 발생합니다 어떻게 해결합니까?
- EF net 5를 사용하는 ASPNET Core의 미니 프로파일 러에서 "찾을 수 없음"오류 발생
- docker - $path에서 실행 파일을 찾을 수 없음 - 알 수없는 오류 메시지
- tensorflow - handpose tfjs 오류 - 레지스트리에 백엔드가 없습니다
- 사이트의 HTML 코드에 대한 페이지를 찾을 수 없습니다
- powershell - get-adobject - 쿼리 구문 분석 오류 지원되지 않음 : -neq '?
- json - ktor를 사용한 "변환을 찾을 수 없음 - class ioktorutilsiobytechannelnative"오류
- openssl - Windows 10에서 libssllib를 찾을 수 없음 오류를 수정하는 방법?
- c # aspnet 유효성 검사를 사용하여 오류 메시지 표시
- Java에서 Output was not found 오류가 발생하는 이유는 무엇입니까?
- android - "에서 발견 된 예기치 않은 요소 "를 어떻게 수정합니까?
- 경고 - fun 오류 : r 반짝이에서 ''개체를 찾을 수 없음
- r - 오류 - 데이터를 클러스터링 할 때 '결과'개체를 찾을 수 없습니다
- 오류 - laravel을 사용하여 찾을 수없는 클래스를 어떻게 수정할 수 있습니까?
- java - JSON 개체에서 DTO의 데이터를 찾을 수 없습니다ZonedDateTime 구문 분석 오류
- vue.js - 구문 분석 오류 - nuxtjs에서 예기치 않은 키워드 '내보내기'
- ssl - kubernetes 비밀 - test-secret-tlsyml 구문 분석 오류 :예상을 찾을 수 없습니다
- r - eval (predvars, data, env) 오류 - 뜨개질시 'column_name'개체를 찾을 수 없지만 뜨개질을하지 않을 때 발견됨
- c++ - 이 상황에서 스트림 삽입 연산자를 재정의 할 때 "연산자를 찾을 수 없음"오류가 발생하는 이유는 무엇입니까?
관련 질문
- c# - 데이터베이스에 데이터를 삽입하지 못했습니다
- c# - ViewComponent 탐색 버튼이 작동하지 않음
- asp.net core - ASP 31 RazorPages AJAX Post Updates 모델 후 Razor가 화면에 값을 인쇄하지 않음
- asp.net - unobtrusive-ajax formnet 코어를 통해 매개 변수 전달
- javascript - ASP NET MVC의 페이지로 리디렉션 한 후 알림 표시
- ASPNET CORE의 팝업 모달에서 모델 유효성 검사를 올바르게 트리거하는 방법
- ASPNET에서 이메일을 통한 암호 복구
- c# - fk ID를 사용하여 MVC POST 모델
- Asp.net Core 3.1 - aspnet 코어 31 - ajax 호출을 통해 list 로 파일 업로드 및 컨트롤러로 전송
- css - ASPNET MVC 응용 프로그램에서 내 뷰에 SASS 스타일을 적용 할 수 없습니까?
문제는
직접 전달하는 대신 JSON.Stringify를 사용하십시오
FavoriteDto 클래스가 다음과 같다고 가정합니다
XML 오류가 발생한 이유는 컨트롤러 작업 때문입니다
'favorite'를 파싱 할 수 없으므로 초기화되지 않았으며 null입니다. 그런 다음 ok (null)를 반환하여 서버에서 응답을 다시 받았을 때 클라이언트 측 ajax에서 구문 분석 오류를 일으켰습니다.