ช่วยหน่อยครับ เกี่ยวกับ AJAX การกำหนด URL นอกเซอร์เวอร์ครับ
ช่วยหน่อยครับ โค๊ตที่ผมเขียนเป็นเพรมเวิคไว้ ใช้งานได้ปกติครับ แต่พอต้องการให้ไปทำที่ไฟล์นอกเซอร์เวอร์ กลับทำไม่ได้เลยครับ ไม่รู้เป็นที่อะไร รบกวนช่วยดูสคริปผมหน่อยนะครับ
อันนี้เป็น AJAX FRAMEWORK
Code (PHP)
function ajaxLoad(method, URL, data, displayId) {
var ajax = null;
if(window.ActiveXObject){
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}
else{
alert("Your browser doesn't support Ajax");
return;
}
method = method.toLowerCase();
URL += "?dummy=" + (new Date()).getTime();
if(method.toLowerCase() == "get") {
URL += "&" + data;
data = null;
}
ajax.open(method, URL);
if(method.toLowerCase() == "post"){
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
ajax.onreadystatechange = function() {
if(ajax.readyState==4 && ajax.status==200){
var ctype = ajax.getResponseHeader("Content-Type");
ctype = ctype.toLowerCase();
//alert(ctype);
if(ctype.match("text/plain")){
ajaxCallback(ctype, displayId, ajax.responseText);
}
else if(ctype.match("text/javascript")){
eval(ajax.responseText);
}
delete ajax;
ajax = null;
}
}
ajax.send(data);
}
function ajaxCallback(contentType, displayId, responseText){
if(contentType.match("text/javascript")){
eval(responseText);
}
else {
var el = document.getElementById(displayId);
el.innerHTML = responseText;
}
}
ส่วนอันนี้เป็นฟังก์ชั่นเรียกใช้งาน
Code (PHP)
function AjaxModel(){
var data1 = document.getElementById('brand').value;
var data = '&data=' +data1;
var URL = "http://www.excemple.com/Script/plans.php";
ajaxLoad("post", URL, data, "content");
}
ทีนี้ มาถึงตรงคำถามล่ะครับ จากโค๊ตการเรียกใช้งานข้างต้น ถ้าผมเรียกจากเซอร์เวอร์เดียวกันคือ www.excemple.com ไม่มีปัญหาครับ ใช้งานได้
แต่พอจะไปเรียกจากเซอร์เวอร์อื่นเช่น www.excemple2.com โดยที่ไฟล์ที่ให้ไปทำอยู่ที่ www.excemple.com และใช้โค๊ตข้างบนทั้งหมด ไม่มีการเปลี่ยนแปลงอะไรเลย กลับใช้ไม่ได้ครับ ใครพอรู้ว่าต้องทำไงบ้างครับ หรือมีอะไรที่ผมต้องเพิ่มหรือเปล่าครับ ไม่รู้ว่างงคำถามของผมรึเปล่า รบกวนพี่ๆทั้งหลายช่วยแนะนำด้วยครับTag : MySQL, JavaScript, Ajax
ประวัติการแก้ไข 2010-11-21 18:25:04 2010-11-21 19:54:29
Date :
2010-11-21 18:19:56
By :
awachai007
View :
1635
Reply :
4
เท่าที่ดูอย่างคร่าวๆ ให้ลองแก้ไขที่ฟังก์ชัน AjaxModel() ที่บรรทัด
var data = '&data=' +data1';
ให้แก้เป็น
var data = '&data=' +data1;
และที่บรรทัด
var URL = "http://www.excemple.com/Script/plans.php";
ให้แก้ไขเป็น
var URL = "http://www.excemple2.com/Script/plans.php";
ลองดูนะครับ
Date :
2010-11-21 19:51:12
By :
someone
แก้ตามแล้วครับ แต่ไม่ได้ผลครับ
แต่มันติดที่ URL ที่ต้องการให้ไปทำและส่งค่ากลับน่ะครับ
พอดีว่าไฟล์มันอยู่ที่
var URL = "http://www.excemple.com/Script/plans.php";
ซึ่งถ้าแก้ตาม
var URL = "http://www.excemple2.com/Script/plans.php";
ไม่มีไฟล์ปลายทางอยู่น่ะครับ
Date :
2010-11-21 19:59:38
By :
awachai007
search for ajax cross domain to fix this problem
Date :
2010-11-21 21:41:24
By :
อยากเป็นบักสีดา
คือแบบนี้ครับ
สคริปเรียกใช้งาน มันอยู่บนโดเมนชื่อ www.excemple2.com ชื่อสมมุติ
ส่วนสคริปที่ต้องการให้ไปทำ URL = 'http://www.excemple.com/script.php';
มันเป็น ajax cross domain น่ะครับ
ถ้าเป็นกรณีนี้ framework ใช้ไม่ได้น่ะครับ เลยไม่รู้ว่าต้องเพิ่มตรงไหนน่ะครับ
Date :
2010-11-23 21:27:57
By :
awachai007
Load balance : Server 01