これについて既に質問があることを認識していますが、誰も私の問題を解決できませんでした。AJAX Submit - ステータス200 with error
私はAJAXを使用してjQueryのモーダルにフォームを送信しようとしているが、それは、ステータス200を言ってもかかわらず、働いていないここでは、コードです:
$(document).ready(function() {
$("#dialog-form").dialog({
autoOpen: false,
});
$("#add-course").click(function() {
$("#dialog-form").dialog("open");
return false;
});
$("#btncancel").click(function() {
$("#dialog-form").dialog("close");
});
$('#<%=btnsubmit.ClientID%>').on('click', function (e) {
e.preventDefault();
var courseDetails = {};
courseDetails.Code = $('#<%=addcode.ClientID%>').val();
courseDetails.Name = $('#<%=addname.ClientID%>').val();
var jsonData = JSON.stringify({
courseDetails: courseDetails
});
$.ajax({
url: '<%=ResolveUrl("updatetest.aspx/addCourseSP") %>',
type: "POST",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
error: OnErrorCall,
});
function OnSuccess(response, jqXHR, textStatus, errorThrown) {
var result = response.d;
if (result == "success") {
$("#msg").html("Success");
$("#dialog-form").dialog("close");
} else {
$("#msg").html("jqXHR: " + JSON.stringify(jqXHR) + " " + "AJAX error: " + textStatus + ' : ' + errorThrown);
}
}
function OnErrorCall() {
$("#msg").html("error");
}
});
});
コードが背後に私は作品をチェックし、ストアドプロシージャを呼び出しますが、 。私はjsonlint.comのJSON文字列もチェックしており、有効であると言います。
私は基本的に同じことを言うブラウザ(Chrome/Firefox)でF12を使用して、状態200を「エラー」でチェックしました。 JSON文字列はParamsの下にあるので、私はそれが問題だとは思わない。
さまざまな方法でデバッグしようとしましたが、今はjqXHRを返しています。「成功」AJAXエラー:[オブジェクトオブジェクト]:未定義です。私は他に何をしようとしているのか分からない。誰でもアイデアはありますか?あなたのスクリプトでこれを使用しようとすると
success
Type: Function(Anything data, String textStatus, jqXHR jqXHR)
が
function OnSuccess(response, jqXHR, textStatus, errorThrown)
あなたのパラメーターリストと一致していない、textStatus
は文字列とerrorThrown
ではありませんされていますよう
おかげでエラーを検討する場合は正しく、JSONをフォーマットする必要があります返されたことを意味します!私は私の機能を変更し、私は今これを取得している:1)jqXHR {"readyState":4、 "responseText": "{\" d \ ":\"エラー\ "}"、 "responseJSON":{"d" "status":200、 "statusText": "OK"} 2)テキストステータス:成功3)データ:[オブジェクトオブジェクト] – user7703048
ステータスがまだ200の理由を尋ねているのは、フレームワーク要求が正常に処理されたとみなします。ビジネスロジックエラーをトラップしようとしている場合は、返信ステータスを明示的に変更するか、レスポンス 'responseJSON'でエラーフラグをチェックする必要があります。 – Jasen