繁体   English   中英

服务器日志在POST请求之前显示GET请求

[英]Server logs showing GET request right before POST request

当我查看我的服务器日志时,我看到在来自具有相同引用者的相同ip的POST请求之前即时发出GET请求。 我期待POST,但不是GET。 谁看过这个吗?

我正在使用javascript在iframe中动态创建表单,以便将POST请求发送到服务器。 我不能使用Ajax,因为POST请求是针对不同的域。 这大约有95%的时间都可以使用。 5%的时间我在POST之前收到GET请求。 它似乎是从同一个ip反复发生的。

这是服务器日志:

10.160.42.113 - - [16/Sep/2010:04:33:08 +0000] "GET /pixel HTTP/1.1" 200 2 "url" "Mozilla/5.0 (Windows; U; Windows NT 5.1; hu; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9 ( .NET CLR 3.5.30729)"
10.160.42.113 - - [16/Sep/2010:04:33:08 +0000] "POST /pixel HTTP/1.1" 200 2 "url" "Mozilla/5.0 (Windows; U; Windows NT 5.1; hu; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9 ( .NET CLR 3.5.30729)"

这是js代码:

var iframe = document.createElement("iframe");
iframe.height = "0";
iframe.width = "0";
iframe.frameBorder = "0";
document.getElementById('canvas').appendChild(iframe);


var iframeDocument = iframe.contentDocument || iframe.contentWindow.document || iframe.document;
iframeDocument.open();
iframeDocument.close();


var form = document.createElement("form");
form.setAttribute("action", 'url');
form.setAttribute("method", 'POST');

for (var key in params) {
    var hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", key);
    hiddenField.setAttribute("value", params[key]);

    form.appendChild(hiddenField);
}

iframeDocument.body.appendChild(form);
form.submit();

这可能是跨原始请求共享'预检'请求。 请参阅我的代码未发出的POST请求之前的其他GET请求

您需要在Web服务器上处理CORS预检请求。

只是一个想法 - 如果有人提交表单,然后重新加载页面,或使用浏览器上的后退/前进按钮会发生什么? 可能是他们的浏览器在向后移动历史时试图“获取”提交目标的情况。

暂无
暂无

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

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