我需要將單個表單發佈到2個不同的URL。一個只是一個日誌腳本,所以響應不需要傳回給用戶。表單POST到2 URL
不幸的是,在這種情況下,我不能只發布到一個PHP腳本,並轉身使用Curl重新張貼它。這必須在用戶的瀏覽器中完成。
這是我現在正在使用的一些JavaScript,但它幾乎所有主流瀏覽器的表面上看似隨機的速度都很慢(但工作時間爲95%)。表單的其餘部分確實需要使用Javascript才能運行,所以我知道問題不僅僅在於某些用戶關閉了Javascript。
function makePOSTRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}
我打電話,在另一個函數手動建立請求後,然後調用形式提交()函數。
任何人都可以提出一個可能更好的替代方案嗎?這似乎正在工作〜95%的時間,但5%的失敗率是一個殺手...謝謝!
您是否嘗試過使用jquery來管理您的ajax請求? –
爲什麼不在同一個文件中包含同一個文件或進程中的日誌文件?如果服務器不同,請通過php curl來完成。 –
就像一個預感:嘗試雙擊表單。有些人傾向於這樣做,它可能會失敗其中的一個帖子或重複他們 – MarZab