สวัสดีครับ
พอดีปกติผมเขียนแต่ window form ไม่เคยเขียนเว็บเลยครับ แต่ว่าพอดีมีคนให้ผมเอาเว็บที่เค้าเขียนไว้ มาครอบอยู่ใน Window form อะครับ โดยที่เค้าให้ไฟล์ เว็บทั้งหมดของเค้ามา โดยจะให้ผมดึงหน้าเว็บผ่านเครื่องได้เลย ทีนี้ ใน โค๊ด html เดียวกันนะครับ ถ้าสมมุติว่ามันอยู่บน Server ของเค้าผมสามารถเชื่อมต่อได้ปกติ สามารถใช้ Web browser control ของ VS2013 ได้เลย ไม่ติด ERROR ทำงานได้ปกติ ผมตั้งค่าให้ใช้ IE V.11 นะครับ
แต่พอเปลี่ยนมาใช้ที่ไฟล์ html ที่อยู่ใน ไดร์ฟ c:/ ของเครื่องผม มันก็เปิดรันสคริปได้นะครับ แต่จังหวะที่มันต้องส่งค่ารับข้อมูลกับ SERVER มันจะมี messagebox ERROR ขึ้น ผมลองถามเจ้าของโค๊ดเค้าบอกถ้าขึ้น error นี้คือไม่สามารถเชื่อมต่อข้อมูล กับ server ได้
ทีนี้ผมเลยลองรันหน้าเว็บจาก html ในเครื่องผ่าน google chrome มันก็ทำงานได้ปกติ แต่พอผมใช้ IE จะมีอาการเชื่อมต่อข้อมูลกับ SERVER ไม่ได้เหมือนกัน
พอลองไปหาข้อมูลเพิ่ม เกี่ยวกับพวก xdr จากเว็บอื่นๆก็บอกว่า เนื่องจาก ถ้าใช้ IE เนี่ยมันจะบล็อกไว้หรือว่าใช้สคริปทำงานคนละอย่างนี่ละ ให้เพิ่มสคริป XmlDomainRequest ก็จะแก้ปัญหาได้ ทีนี้ผมก็ทำไม่เป็นว่า มันต้องเพิ่มสคริปนี้ตรงไหน
ซึ่งโค๊ดเชื่อมต่อมันน่าจะเป็นโค๊ดชุดนี้อ่ะคับ ผมใช้ google chrome เปิดใช้งานก็ใช้ได้
แต่ใช้ IE ไม่ได้ ซึ่งผมตั้งค่า Security ให้เปิดหมดทั้ง local intranet และ internet ให้มัน enable เกือบหมดเลย ก็ยังไม่ได้นะครับ
(ผมเช็ค url ใน load.js แล้ว ตรงกับที่เค้าใช้กันครับ)
อันนี้โค๊ดเชื่อมต่อกับตัว server
$.ajax({
type: "POST",
url: AjaxURL+"classes/ajax/maintenance.php", //var AjaxURL is in file load.js and include /
data: $( "#frmLogin" ).serialize(),
beforeSend: function() {
// setting a timeout
$("body").addClass('ui-disabled');
$.mobile.loading("show",{
theme: "a",
text: "Loading..",
textVisible: true
});
},
success: (function(data){
if(data.msg=='Y'){
$.jStorage.set('login_session', $('#username').val(), {TTL: 28800000}); //save session
window.location.href = 'index_index.html';
//$.mobile.changePage( AjaxURL+"index_index.html", { transition: "fade"} );
return true;
}else{
alert(data.msg +"");
window.location.href = 'login.html';
return false;
}
$.mobile.loading("hide");
$("body").removeClass('ui-disabled');
}),
error
function(data) {
console.dir(data);
alert( "error "+ data['responseText'] );
//$('#a').html( "error "+ data['responseText'] );
$.mobile.loading("hide");
$("body").removeClass('ui-disabled');
return false;
}),
dataType: "json"
});
//window.location.href = 'index.html';
});
ส่วนอันนี้ script ที่ผมเปิดเว็บผ่านๆมาเจอ
f ($.browser.msie && window.XDomainRequest) {
// Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("get", url);
xdr.onload = function() {
// XDomainRequest doesn't provide responseXml, so if you need it:
var dom = new ActiveXObject("Microsoft.XMLDOM");
dom.async = false;
dom.loadXML(xdr.responseText);
};
xdr.send();
} else {
$.ajax({...});
}
ผมไม่มั่นใจว่า tag ถูกห้องมั้ยนะครับ
ผมมือใหม่กับ การเขียนเว็บไซด์จริงๆครับ ถ้าอธิบายยังไงขออธิบายละเอียดหน่อยนะครับ
ขอบคุณล่วงหน้าครับ T T
รบกวนถามปัญหาเกี่ยวกับการรันเว็บจาก local file ด้วย Web browser object ของ vs2013 มันไม่สามารถอ่าน json ของ server ได้
พอดีปกติผมเขียนแต่ window form ไม่เคยเขียนเว็บเลยครับ แต่ว่าพอดีมีคนให้ผมเอาเว็บที่เค้าเขียนไว้ มาครอบอยู่ใน Window form อะครับ โดยที่เค้าให้ไฟล์ เว็บทั้งหมดของเค้ามา โดยจะให้ผมดึงหน้าเว็บผ่านเครื่องได้เลย ทีนี้ ใน โค๊ด html เดียวกันนะครับ ถ้าสมมุติว่ามันอยู่บน Server ของเค้าผมสามารถเชื่อมต่อได้ปกติ สามารถใช้ Web browser control ของ VS2013 ได้เลย ไม่ติด ERROR ทำงานได้ปกติ ผมตั้งค่าให้ใช้ IE V.11 นะครับ
แต่พอเปลี่ยนมาใช้ที่ไฟล์ html ที่อยู่ใน ไดร์ฟ c:/ ของเครื่องผม มันก็เปิดรันสคริปได้นะครับ แต่จังหวะที่มันต้องส่งค่ารับข้อมูลกับ SERVER มันจะมี messagebox ERROR ขึ้น ผมลองถามเจ้าของโค๊ดเค้าบอกถ้าขึ้น error นี้คือไม่สามารถเชื่อมต่อข้อมูล กับ server ได้
ทีนี้ผมเลยลองรันหน้าเว็บจาก html ในเครื่องผ่าน google chrome มันก็ทำงานได้ปกติ แต่พอผมใช้ IE จะมีอาการเชื่อมต่อข้อมูลกับ SERVER ไม่ได้เหมือนกัน
พอลองไปหาข้อมูลเพิ่ม เกี่ยวกับพวก xdr จากเว็บอื่นๆก็บอกว่า เนื่องจาก ถ้าใช้ IE เนี่ยมันจะบล็อกไว้หรือว่าใช้สคริปทำงานคนละอย่างนี่ละ ให้เพิ่มสคริป XmlDomainRequest ก็จะแก้ปัญหาได้ ทีนี้ผมก็ทำไม่เป็นว่า มันต้องเพิ่มสคริปนี้ตรงไหน
ซึ่งโค๊ดเชื่อมต่อมันน่าจะเป็นโค๊ดชุดนี้อ่ะคับ ผมใช้ google chrome เปิดใช้งานก็ใช้ได้
แต่ใช้ IE ไม่ได้ ซึ่งผมตั้งค่า Security ให้เปิดหมดทั้ง local intranet และ internet ให้มัน enable เกือบหมดเลย ก็ยังไม่ได้นะครับ
(ผมเช็ค url ใน load.js แล้ว ตรงกับที่เค้าใช้กันครับ)
อันนี้โค๊ดเชื่อมต่อกับตัว server
$.ajax({
type: "POST",
url: AjaxURL+"classes/ajax/maintenance.php", //var AjaxURL is in file load.js and include /
data: $( "#frmLogin" ).serialize(),
beforeSend: function() {
// setting a timeout
$("body").addClass('ui-disabled');
$.mobile.loading("show",{
theme: "a",
text: "Loading..",
textVisible: true
});
},
success: (function(data){
if(data.msg=='Y'){
$.jStorage.set('login_session', $('#username').val(), {TTL: 28800000}); //save session
window.location.href = 'index_index.html';
//$.mobile.changePage( AjaxURL+"index_index.html", { transition: "fade"} );
return true;
}else{
alert(data.msg +"");
window.location.href = 'login.html';
return false;
}
$.mobile.loading("hide");
$("body").removeClass('ui-disabled');
}),
errorfunction(data) {
console.dir(data);
alert( "error "+ data['responseText'] );
//$('#a').html( "error "+ data['responseText'] );
$.mobile.loading("hide");
$("body").removeClass('ui-disabled');
return false;
}),
dataType: "json"
});
//window.location.href = 'index.html';
});
ส่วนอันนี้ script ที่ผมเปิดเว็บผ่านๆมาเจอ
f ($.browser.msie && window.XDomainRequest) {
// Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("get", url);
xdr.onload = function() {
// XDomainRequest doesn't provide responseXml, so if you need it:
var dom = new ActiveXObject("Microsoft.XMLDOM");
dom.async = false;
dom.loadXML(xdr.responseText);
};
xdr.send();
} else {
$.ajax({...});
}
ผมไม่มั่นใจว่า tag ถูกห้องมั้ยนะครับ
ผมมือใหม่กับ การเขียนเว็บไซด์จริงๆครับ ถ้าอธิบายยังไงขออธิบายละเอียดหน่อยนะครับ
ขอบคุณล่วงหน้าครับ T T