2009-04-20 40 views
5

tôi tiếp tục nhận được lỗi sau của:vấn đề ajax? với activexobjects

còn tự do ngoại lệ: [ngoại lệ ... "Component trả về mã lỗi: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" vị trí : "JS khung :: http://site/cms/js/interface.js :: doAjaxCall :: dòng 300" dữ liệu: no]

 

ngoại lệ còn tự do: [ngoại lệ ... "Component trở thất bại code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" vị trí: "JS khung :: http://site/cms/js/interface.js :: doAjaxCall :: dòng 300" dữ liệu: no]

Line 0

Đây là chức năng với doAjaxCall

function doAjaxCall(cmd,params) { 
    var postdata='cmd='+cmd+'&params='+params; 

    var a=sajax_init_object(); 
    if (a) { 
    a.open("POST","ajax_handler.php", false); 
    a.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    a.send(postdata);      <====Line 300 
     document.body.style.cursor="default"; 

    if(a.readyState == 4) { 
     return a.responseText; 
    } else { 
     alert("We where unable to execute the ajax call."); 
    } 
    } 

function sajax_init_object() { 
    var A; 
    try { 
     A=new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
     try { 
      A=new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (oc) { 
      A=null; 
     } 
    } 
    if(!A && typeof XMLHttpRequest != "undefined") 
     A=new XMLHttpRequest(); 
    if (!A) 
     alert("Could not create connection object."); 
    return A; 
} 

Bất kỳ ý tưởng không?

+0

này đi ra ngoài của tên miền của bạn là? Bạn đang sử dụng url tương đối hay tuyệt đối? –

Trả lời

1

Do hạn chế bảo mật trong Javascript, không thể truy xuất thông tin từ các miền từ xa thông qua XMLHttpRequest. Tôi nghĩ bạn cần một proxy!

+0

Hãy xem tại đây: https://developer.mozilla.org/En/HTTP_Access_Control – piero

+0

Mã sử ​​dụng URI tương đối. Tên miền từ xa đi vào đâu? – Quentin

+0

bao giờ nếu bạn có quyền kiểm soát nội dung trên tên miền khác, bạn có thể cho phép cuộc gọi AJAX đến từ trang web của bạn bằng cách sử dụng tiêu đề bảo mật 'Access-Control-Allow-Origin: *' * = ký tự đại diện và bạn có thể cung cấp danh sách dấu phẩy của các miền EG '* .facebook.com, facebook.com' –

0

Đó là do loại MIME: ứng dụng/x-www-form-urlencoded

Nó hoạt động trong một số trình duyệt. Nó sẽ không làm việc trong các trình duyệt dựa trên Gecko (ví dụ như Firefox)

Xem thêm chi tiết tại địa chỉ: http://ajaxpatterns.org/Talk:XMLHttpRequest_Call