Javascript 根据返回的数据更改Ajax查询数据类型

Javascript 根据返回的数据更改Ajax查询数据类型,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个ajax方法,它调用一个 $.ajax({ url: "/DeviceUsage/Return", type: "POST", contentType: "application/json; charset=utf-8", dataType: 'HTML', data: JSON.stri

我有一个ajax方法,它调用一个

 $.ajax({
                    url: "/DeviceUsage/Return",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    dataType: 'HTML',
                    data: JSON.stringify({ dev: { DeviceInstanceId: $('#DeviceInstanceId').val(), UserId: "1", StorageId: $('#StorageId').val() } }),
                    error: function (data) {
                        alert("wystąpił nieokreślony błąd " + data);
                    },
                    success: function (data) {
                        if (data.ok) {
                            $("#Modal").modal('hide');
                            window.location = data.newurl;
                        }
                        else {
                            $('.modal-body').html(data);
                        }                  
                    }
                })
根据方法是否成功结束,该方法可以返回HTML数据或JSON数据

 return PartialView(dev)   <=== Html
 return Json(new { ok = true, newurl = Url.Action("MyDevices") });;<=== JSON

returnpartialview(dev)当jQuery试图为您确定正确的格式时,尝试不提供数据类型

数据类型(默认值:智能猜测(xml、json、脚本或html))

如果这不起作用,请使用html(纯文本),只需检查响应数据中的一些关键字,并根据此使用数据。比如,

if (data.indexOf("html") > -1) {
   $('.modal-body').html(data);
}
else {
   var objData = JSON.parse(data);
   window.location = objData.newurl;
}

嗨-在请求发出之前,你有没有办法从前端知道它是什么?我认为不可能。除非您改为使用XhtPrequest或seomthing之类的其他东西,否则可能存在这样的可能性。。但对于$.ajax,我认为不是..在请求之前,现在没有办法做到这一点。该方法检查用户数据输入并确定其是否有效