如何在beforeSend函数中更改编码数据?

时间:2019-02-07 16:50:11

标签: jquery ajax

我正在尝试编写一个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请求(在第一个循环中检索)

0 个答案:

没有答案