我正在尝试编写一个Ajax脚本以在第一个请求期间获取响应session_key,然后使用相同的session_key将脚本循环另外X次以获取更多结果,但是我无法使用session_key更改有效负载数据
脚本和循环工作正常,但是由于无法在有效负载上发送相同的session_key,因此每个循环都将启动一个新会话
试图将session_key保留在输入中,并使用beforeSend更改有效负载,但效果不佳
var all_results = [];
encodedata = JSON.stringify({"q": "Italy","session_key":""});
$.ajax({
url: document.location.origin + '/api/search',
type : 'POST',
data : encodedata,
tryCount : 0,
retryLimit : 4,
contentType:'application/json',
beforeSend: function(xhr) {
// get the session_key and update the payload
this.data.session_key = $("#session_key").val();
},
success : function(data) {
var result = $.parseJSON(data);
all_results = all_results.concat(result);
// get the session_key from the first result and keep inside an input
$("#session_key").val(result.session_key);
this.tryCount++;
if (this.tryCount <= this.retryLimit) {
$.ajax(this);
return;
} else {
// code to use the result...
}
}
});
使用相同的session_key循环处理ajax请求(在第一个循环中检索)