如何查看asp.net api中ajax调用请求的数据类型

本文关键字:调用 请求 数据类型 ajax 何查看 asp net api | 更新日期: 2023-09-27 18:04:03

NET API,当你在ajax中设置请求的数据类型时,你如何得到ajax调用请求的数据类型?

$.ajax({
    url: url,
    data: params,
    dataType: "xml",
    type: "GET",
    statusCode: {
        200: function (data) {
            }
        }

然后,在我的控制器中,我想知道我请求的是XML还是JSON。

Thanks in advance

如何查看asp.net api中ajax调用请求的数据类型

这在accept http报头中- asp.net webapi将为您完成大部分内容类型协商-见这里

jQuery会把它作为application/json或application/xml放在accept报头中,你可以手动将它从请求中取出。标题

如果我没有弄错的话,这个信息将在你的HTTP请求中翻译为'Accept'头。我不能100%确定,因为这也可能只是JQuery保存的信息,以便更好地解码答案。无论如何,在Ajax设置中也有一个accepts参数,它可以确定地设置请求的"Accept"标头。然而,JQuery的文档说,accepts参数的默认值取决于dataType参数,所以我想说我的第一个猜测是正确的。

要从控制器中检索标题,只需调用:

IEnumerable<string> headerValues = request.Headers.GetValues("MyCustomID");
var id = headerValues.FirstOrDefault();

(关于此方法的错误处理,请参阅答案)