簡體   English   中英

C# Ajax 無法從控制器響應中獲取數據

[英]C# Ajax can't get data from controller response

我有一個關於ajax的問題​​。 我有網址: http://localhost:57295/api/Formgetstatus/id=admin&password=test123!&orderNo=000016-150000012

當我單擊此 URL 時,瀏覽器顯示信息響應:

<FormGetStatusRespond xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/FormService.RestApi">
<ResultInfo>
<ErrorInfo i:nil="true"/>
<ErrorType>None</ErrorType>
<Status>Ok</Status>
</ResultInfo>
<Status>OK</Status>
<StatusCode>1</StatusCode>
</FormGetStatusRespond>

這是控制器響應:

public FormGetStatusRespond GetStatus(string id, string password, string orderNo)
        {
            var respond = new FormGetStatusRespond();
            var resultInfor = new ResultInfo();
            var errorInfor = new ErrorInfo();

            if(!this.AuthenticateForUser(id, password))
            {
                // Result Infor
                resultInfor.Status = WebApiStatus.Error;
                resultInfor.ErrorType = WebApiErrorType.AuthenticationError;

                // Error Infor
                errorInfor.Messsage = "abc";

                resultInfor.ErrorInfo = errorInfor;

                respond.ResultInfo = resultInfor;

                return respond;
            }

            var orderDal = new OrderRepository();
            var orderModel = orderDal.FindByOrderNo(orderNo);

            if(orderModel != null)
            {
                // Result Infor
                resultInfor.Status = WebApiStatus.Ok;
                resultInfor.ErrorType = WebApiErrorType.None;
                respond.ResultInfo = resultInfor;
                respond.Status = this.GetOrderStatus(orderModel.OrderStatus);
                respond.StatusCode = ((int)orderModel.OrderStatus).ToString();
            }
            else
            {
                // Result Infor
                resultInfor.Status = WebApiStatus.Error;
                resultInfor.ErrorType = WebApiErrorType.ApplicationError;

                // Error Infor
                errorInfor.Messsage = "abc:" + orderNo + "abc";

                resultInfor.ErrorInfo = errorInfor;

                respond.ResultInfo = resultInfor;

                return respond;
            }

            return respond;
        }

我使用 ajax 獲取數據 XML :

$.ajax({
        type: 'GET',
        url: "http://localhost:57295/api/Formgetstatus/id=admin&password=test123!&orderNo=000016-150000012",
        dataType: 'xml',
        success: function (data) {
          alert('b');
        },
        error: function (error) {
          alert('a');
        }
      });

我不知道為什么我無法從 ajax 獲取數據。 請幫我! 謝謝大家!

控制器操作的返回值應該是從 ActionResult 派生的。 嘗試將您的對象轉換為 xml 字符串然后返回

return this.Content(xmlString, "text/xml");

所以響應類型設置為 xml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM