Ajax - 500 내부 서버 오류
저는 직장에서 이 프로젝트를 위해 AJAX를 배우려고 합니다.환자가 복용하는 약을 로드하는 사이트가 있어요.
저는 이 AJAX 함수를 재귀적으로 업이라고 부릅니다.그것은 단일 약물과 7일치 기록을 포함한 새로운 테이블을 추가할 것입니다.FF와 IE에서 실행할 코드를 얻는 데 문제가 있습니다.크롬으로 완벽하게 작동합니다.xmlhttp.status를 표시하는 경보가 발생했는데 다음과 같이 표시됩니다.
xmlhttp.status==500(내부 서버 오류).
모든 재귀에 코멘트를 달아, 이 코드로 좁혀졌습니다(x는 약의 수를 추적하고 있기 때문에, 언제 멈출지 알 수 있습니다).
function LoadMeds()
if ( x == MaxMedCount )
{
document.getElementById("the_day").value = parseInt(document.getElementById("the_day").value)+7;
}
if ( x == (MaxMedCount - 1) )
{
document.getElementById("x").value = x + 1;
show();
}
else
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
try
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var div = document.createElement('div');
div.innerHTML= xmlhttp.responseText;
document.getElementById('MedTable').appendChild(div);
document.getElementById("the_med_").value = the_med_;
}
}
catch(e)
{
alert("Error");
}
}
xmlhttp.open("GET","URL with variables passed",true);
xmlhttp.send();
document.getElementById("x").value = x + 1;
}
더 필요한 코드가 있으면 알려주세요.
그500 (internal server error)
서버 측에서 뭔가 잘못되었다는 것을 의미합니다.여러 가지가 있을 수 있지만, 우선 URL과 파라미터가 맞는지 확인하겠습니다.또한 요구를 처리하는 대상이 POST가 아닌 GET으로 요구를 상정하고 있는지 확인합니다.
Fiddler와 같은 도구를 사용하여 모든 HTTP 요청과 응답을 감시하고 사용자가 보내는 내용과 서버가 응답하는 내용을 정확하게 볼 수 있도록 하는 유용한 방법은 Fiddler와 같은 도구를 사용하는 것입니다.
Ajax 코드를 직접 작성해야 하는 특별한 이유가 없다면 Ajax 상호작용을 처리하는 라이브러리를 사용하는 것이 좋습니다.jQuery도 옵션 중 하나입니다.
반송 문자열 데이터가 매우 길어서 JSON 형식이 손상되었습니다.JSON 데이터의 최대 사이즈는 다음과 같이 변경해야 합니다.
웹을 엽니다.컨피규레이션파일을 작성하고, 이러한 행을 설정 섹션에 붙여넣습니다.
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
이것은 SOAP 호출에 대한 잘못된 매개 변수일 수 있습니다. 'data:' json 섹션의 매개 변수 형식을 확인하십시오. 이것은 전달 중인 payload입니다. 매개 변수와 데이터는 JSON 형식으로 래핑됩니다.
Google Chrome의 디버깅 툴바에는 파라미터를 확인하고 오류 메시지를 확인할 수 있는 몇 가지 유용한 도구가 있습니다. 예를 들어 콘솔 탭부터 시작하여 오류 URL을 클릭하거나 네트워크 탭을 클릭합니다.메시지 머리글, 응답 등을 볼 수 있습니다.
줄의 을 풉니다.[System.Web.Script.Services.ScriptService]
서비스가 정상적으로 동작하기 시작합니다.
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
스크립트에서 ASP를 사용하여 이 웹 서비스를 호출할 수 있습니다.NET AJAX, 다음 행을 주석 해제합니다.
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
안고 때 로 ASP가 리모트로 할 때 스택트레이스 하지 않는을 기억했습니다.이것은, 「ASP」의 「ASP」/「ASP」를 할 수 .이것은, 테스트 할 수 없는 것과 같습니다..asmx
리모트로 하고, 그 높은 「 assembly」가되었을 경우, 「Could not load file or assembly」가 표시되거나, 「Could not load file or assembly or 」'Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
입니다.
서버에 로그인하여 거기에서 디버깅합니다.
한다behavior: JsonRequestBehavior.AllowGet
★★★★★★★★★★★★★★★★」Json Return
C#로
이렇게 루트의 위치를 변경하는 오류를 수정했습니다.php, 예를 들어 다음과 같은 것이 있습니다.
Route::resource('Mensajes', 'MensajeriaController');
Route::get('Mensajes/modificar', 'MensajeriaController@modificarEstado');
그리고 이렇게 표현합니다.
Route::get('Mensajes/modificar', 'MensajeriaController@modificarEstado');
Route::resource('Mensajes', 'MensajeriaController');
저도 같은 실수를 했어요.백엔드 방법이 다른 json 데이터를 예상한 것이 원인인 것으로 나타났습니다.내 Ajax 통화에서 나는 다음과 같은 말을 들었다.
$.ajax({
async: false,
type: "POST",
url: "http://13.82.13.196/api.aspx/PostAjax",
data: '{"url":"test"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
});
WebMethod에서는 C# 백엔드 코드 내에서 다음과 같이 엔드포인트를 선언하고 있습니다.
public static string PostAjax(AjaxSettings settings)
AjaxSettings가 선언된 위치:
public class AjaxSettings
{
public string url { get; set; }
}
문제는 ajax 콜과 백엔드 엔드 엔드 엔드 사이의 매핑이 동일하지 않다는 것이었습니다.Ajax 콜을 다음과 같이 바꾸자마자 모든 것이 잘 작동했습니다!
var data ='{"url":"test"}';
$.ajax({
async: false,
type: "POST",
url: "http://13.82.13.196/api.aspx/PostAjax",
data: '{"settings":'+data+'}',
contentType: "application/json; charset=utf-8",
dataType: "json"
});
메서드 시그니처에 정확하게 일치시키기 위해 Ajax 콜 내의 데이터 변수를 변경해야 했습니다.
언급URL : https://stackoverflow.com/questions/4789613/ajax-500-internal-server-error
'programing' 카테고리의 다른 글
리액트 라우터 - 링크 대 리다이렉트 대 이력 (0) | 2023.02.24 |
---|---|
리액트 네이티브 뷰 내부 텍스트별 자동 너비 (0) | 2023.02.24 |
봄에 JSON 디시리얼라이저를 작성하거나 확장하기 위한 올바른 방법 (0) | 2023.02.24 |
각도 JS를 사용하여 드롭다운 리스트 컨트롤의 선택된 옵션을 설정하는 방법 (0) | 2023.02.24 |
jQuery width()가 문서 준비 직후에 잘못되었습니까? (0) | 2023.02.24 |