工作到第一个

时间:2017-09-09 05:44:06

标签: javascript ajax browser

我成功登录此站点,然后打开chrome dev工具并尝试执行以下操作,

$.post("https://www.example.co.uk/request/id",{ entity_id: "637" }, function(data, status){ console.log("entity_id: 637 Data: " + data + "\nStatus: " + status);});
$.post("https://www.example.co.uk/request/id",{ entity_id: "67" }, function(data, status){ console.log("entity_id: 67 Data: " + data + "\nStatus: " + status);});
$.post("https://www.example.co.uk/request/id",{ entity_id: "19920" }, function(data, status){ console.log("entity_id: 19920 Data: " + data + "\nStatus: " + status);});

我得到的回应是,

entity_id: 637 Data: {"code":700,"msg":"Example Entity Object"}
Status: success
VM130:3 entity_id: 67 Data: {"code":0,"msg":"Invalid Request."}
Status: success
VM130:2 entity_id: 19920 Data: {"code":0,"msg":"Invalid Request."}
Status: success

最初我认为这个网站并不支持并行帖子查询,但是当我逐一执行这些请求时,无论先收到每个请求的响应,我都不会收到无效请求。

我也试过Postman但是有一些身份验证问题,所以我不再使用它了。

1 个答案:

答案 0 :(得分:1)

这可能是因为你的php在处理其他请求时不会监听请求。其他方法有两种方法可以解决您的问题:

  • 加速你的php(我帮不了你,你不显示你的代码);
  • 按照以下方式减慢您的请求:

    var i = 0;
    $.post("https://www.example.co.uk/request/id", { entity_id: "637" }, function (data, status) { console.log("entity_id: 637 Data: " + data + "\nStatus: " + status); });
    
    setTimeout(function () {
      $.post("https://www.example.co.uk/request/id", { entity_id: "67" }, function (data, status) { console.log("entity_id: 67 Data: " + data + "\nStatus: " + status); });
    }, i += 500);
    
    setTimeout(function () {
      $.post("https://www.example.co.uk/request/id", { entity_id: "19920" }, function (data, status) { console.log("entity_id: 19920 Data: " + data + "\nStatus: " + status); });
    }, i += 500);
    

此外,您可以在多个服务器中尝试多个请求。服务器可能会正常响应,您可以检查javascript是否可以处理多个请求,但我认为是。