jQuery - AJAX - 在成功函数中获取请求的参数

Jam*_*mes 5 ajax jquery http-request-parameters

是否可以在成功(回调)函数中获取请求的参数?

例如,

function handleSubmitClick(evt) {
  evt.preventDefault();

  var setupOptions = { 
        success: loadSearch,
        type: "POST",
        dataType: "json",            
        url:   "../search.x",
        error: handleError,
        timeout: 10000
  };                
  $("#searchForm").ajaxSubmit(setupOptions);

  return false;   
}

function loadSearch(data, statusText, xhr, $form) {
   // here is where I would like to get the HTTP request
   // parameters
}
Run Code Online (Sandbox Code Playgroud)

当然,我可以在handleSubmitClick期间将请求参数存储在全局变量中,并在loadSearch中读取该变量。但是,如果用户在第一个请求执行 loadSearch 之前提交另一个请求,则该变量的值将被覆盖(并且我不想阻止用户在第一个请求完成处理之前发出另一个请求)。

我目前让服务器在响应数据中回显请求参数,但我希望请求参数已经可供客户端使用,而服务器不必回显请求参数。谢谢。

Sha*_*nig 4

这可能就是您正在寻找的内容,尽管它使用与您当前的解决方案不同的 AJAX 函数:

$.post( your_ajax_request_url, 
    { 
      success: loadSearch,
      type: "POST",
      dataType: "json",            
      url:   "../search.x",
      error: handleError,
      timeout: 10000 
    }, function( response ){

      console.log( $(this).attr('data') );   

    },  "json" );
Run Code Online (Sandbox Code Playgroud)

$(this).attr('data') 将具有原始请求参数,您可以将其视为对象,因此

$(this).attr('data')->dataType
Run Code Online (Sandbox Code Playgroud)

将是“json”。