【问题标题】:If an AJAX REST API succeeds or fails, how do I access the request headers within the success or error callbacks?如果 AJAX REST API 成功或失败,我如何访问成功或错误回调中的请求标头?
【发布时间】:2020-04-11 03:00:32
【问题描述】:

例如,我有:

$.ajax({
    type: 'POST',
    url: 'https://jsonplaceholder.typicode.com/todos',
    data: { name: 'random name' },
    headers: { 'x-my-custom-header': 'XYZ' },
    success: function(successResp) {
      console.log(successResp);
    },
    error: function(errorResp){
        console.log(errorResp);
    }
});

如何在成功或错误回调中从请求标头访问“x-my-custom-header”?

【问题讨论】:

    标签: javascript jquery ajax rest api


    【解决方案1】:

    如果您没有在$.ajax() 设置中明确包含context 属性,那么在您的“成功”等处理程序中this 将引用设置对象本身。因此,this.headers 将为您提供额外的标头属性。

    More information at MDN.

    【讨论】:

      【解决方案2】:

      将标题存储在变量中。

      let customHeader = { 'x-my-custom-header': 'XYZ' };
      $.ajax({
      type: 'POST',
      url: 'https://jsonplaceholder.typicode.com/todos',
      data: { name: 'random name' },
      headers: customHeader,
      success: function(successResp) {
        console.log(customHeader);
      },
      error: function(errorResp){
          console.log(customHeader);
      }});
      

      【讨论】:

        【解决方案3】:

        你可以试试这个,因为request对象是可访问的,如果从成功回调作为第三个参数请求:

        $.ajax({
        type: 'POST',
        url:'https://jsonplaceholder.typicode.com/todos',
        data: { name: 'random name' },
        headers: { 'x-my-custom-header': 'XYZ' },
        success: function(data, textStatus, request){
            alert(request.getResponseHeader('some_header'));
        },
        error: function (request, textStatus, errorThrown) {
            alert(request.getResponseHeader('some_header'));
        }
        

        });

        更多详情,请访问:https://api.jquery.com/jQuery.ajax/

        【讨论】:

        • OP 正在询问 request 标头。
        • 是的,我正在寻找请求标头。
        猜你喜欢
        • 2015-03-30
        • 2015-08-27
        • 2020-08-02
        • 1970-01-01
        • 2021-01-18
        • 1970-01-01
        • 2013-01-25
        • 1970-01-01
        • 2023-03-17
        相关资源
        最近更新 更多