2

ajax 呼び出しが突然機能しなくなりましたが、その理由がわかりません。何が表示されないのですか?

回答: 電源が切れていたためASP.NET State Serverです。

これが私のWebメソッドです

[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Test(string message)
{
    return message;
}

そして、ここに私のajax呼び出しがあります

$.ajax({
    url: '/Test.asmx/Test',
    data: {message:'hello'},
    type: "POST",
    async: true,
    contentType: "application/json; charset=UTF-8",
    dataType: "json",
    beforeSendMethod: function (xhr) {
        xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
    },
    success:  function (data, textStatus, jqXHR) {
        console.log('success!',data, textStatus, jqXHR);
    },
    error: function (data, textStatus, jqXHR) {
        console.log('error!',data, textStatus, jqXHR);
    }
});

これが私のエラーです

Message:    Invalid web service call, missing value for parameter: 'message'.

StackTrace:   at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)
   at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)
   at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)
   at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)

ExceptionType: System.InvalidOperationException

これを行うと機能します:

$.ajax({
    url: '/Services/Authentication.asmx/Test',
    data: {message:'hello'},
    type: "POST",
    success:  function (data, textStatus, jqXHR) {
        console.log('success!',data, textStatus, jqXHR);
    },
    error: function (data, textStatus, jqXHR) {
        console.log('error!',data, textStatus, jqXHR);
    }
});

ただし、WebMethod は JSON ではなく XML を返します。

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">hello</string>

ヘッダー

ここに画像の説明を入力

4

2 に答える 2