[問題]利用AJAX去做上傳速度測試 卻遇到Access Denied問題
各位大大
小弟我目前想要利用AJAX和JAVASCRIPT來做一個讓使用者
可以去測試對某些測試主機上傳速度的function
一開始使用者連接進來一台固定的webserver
webserver中會指定一個js file
在js file中我利用AJAX的XMLHttpRequest的open去開要測試的主機
(和webserver不同domain)
但是這樣在IE上遇到了Access Denied的問題
以下是我js file中連接到測試主機的function
getconn是先去建立起XMLHttpRequest的物件
getandsend是連接要測試的主機後傳送資料過去
而傳送過去的資料即是用getdatatosend所產生出來的字串
在其他網站上 好像是說因為Cross Domain的問題
想請問各位大大是否有甚麼方式可以解決domain的問題
而且可以讓資料傳送得到對方主機來測試上傳速度呢
function getconn() {
if (window.XMLHttpRequest) {//for Mozilla or safari
conn = new XMLHttpRequest();
if (conn.overrideMimeType) {
conn.overrideMimeType("text/xml");
}
}
else {
if (window.ActiveXObject) {//for IE
try {
conn = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
conn = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
alert("Your web browser does not support AJAX!");
conn = false;
}
}
}
else {
alert("Your web browser does not support AJAX!");
conn = false;
}
}
return conn;
}
function getandsend(gdts, dts, gdtr, ftr, cte) {
var params, fr;
if (conn) {
conn.onreadystatechange = function () { };
conn.abort();
}
conn = getconn();
if (gdts == true) {
params = getdatatosend(dts);
}
else {
params = dts;
}
if (gdtr == true) {
fr = getfiletoreceive(ftr);
}
else {
fr = ftr;
}
conn.open("POST", SpeedInputURL +"/test/"+ fr + "?ref_id=" +
parseInt(Math.random() * 10000), false)
conn.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
conn.setRequestHeader("Content-length", params.length);
conn.setRequestHeader("Connection", "close");
conn.onreadystatechange = function () {
if (conn.readyState == 4) {
var tfd = new Date();
tf = tfd.getTime();
if (scanstatus == true)
setTimeout(cte, 0);
}
}
var tsd = new Date();
ts = tsd.getTime();
conn.send(params);
}
function getdatatosend(xb) {
if (xb == gdts) {
return gdtsval;
}
else {
var y = "";
var x;
gdts = xb;
xb *= 1024;
if (xb > 0) {
for (x = 0; x < xb; x++) {
if (x == 1) {
y += "=";
}
else {
y += String.fromCharCode((x % 26) + 65);//look like that
generate a string
}
}
}
gdtsval = y;
return y;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.207.205
推
08/11 16:32, , 1F
08/11 16:32, 1F
→
08/11 16:51, , 2F
08/11 16:51, 2F
→
08/11 16:52, , 3F
08/11 16:52, 3F
→
08/11 16:52, , 4F
08/11 16:52, 4F
→
08/11 20:07, , 5F
08/11 20:07, 5F