繁体   English   中英

如何从单个请求的AJAX调用中删除标头?

[英]How to remove header from AJAX call for a single request?

我正在构建一个应用程序,使用Rails和Backbone作为我的后端,需要用户登录才能访问某些页面。 在其中一个经过用户身份验证的页面上,我进行了设置,以便他们可以通过输入数据在我的数据库中创建一个条目,然后将数据发送到Google Maps API以检索纬度和经度。

通过帮助函数,我正在检查用户是否经过身份验证,但是当我向Google Maps API发送AJAX调用时,也会发送用户令牌。 这是我现在设置的代码。

在我的api js文件中,该文件首先在我的页面加载时运行

var token = $('#api-token').val();
$.ajaxSetup({
  headers:{
    "accept": "application/json",
    "token": token
  }
});

在我的users_controller.rb中

def profile
    authorize!
    @user = current_user
    @bathrooms = Bathroom.all.sort_by { |name| name }
    render layout: 'profile_layout'
end


def authorize!
  redirect_to '/login' unless current_user
end

def current_user
  @current_user ||= User.find(session[:user_id]) if session[:user_id]
end

这是我的AJAX电话

 function getInfo(location) {
  console.log('getInfo');
  $.ajax({
    method: 'get',
    url: 'https://maps.googleapis.com/maps/api/geocode/json',
    data:{address: location, key: 'API KEY GOES HERE'},
    success: function(data) {
      extractData(data);
    }
  })
}

您可以尝试以下步骤:

function getInfo(location) {
  console.log('getInfo');

  delete $.ajaxSettings.headers["token"]; // Remove header before call

  $.ajax({
    method: 'get',
    url: 'https://maps.googleapis.com/maps/api/geocode/json',
    data:{address: location, key: 'API KEY GOES HERE'},
    success: function(data) {
      extractData(data);
    }
  });

  $.ajaxSettings.headers["token"] = token; // Add it back immediately
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM