2013-03-27 30 views
5

Tôi có bài ajax sau:ajax bài lỗi: NETWORK_ERR: XMLHttpRequest Exception 101

$.ajax({ 
    type: "POST", 
    url: "http://192.168.7.9/api", 
    dataType: 'json', 
    data: { username: "john.doe", password: "123456", method: "search_samples" }, 
    success: function (data) { 
     // Never get here 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
     // Always here: if async true, errorThrown has no message 
     // otherwise I se the NETWORK_ERR message 
    } 
}); 

Nó đang trở lại với lỗi này: NETWORK_ERR: XMLHttpRequest Exception 101.

Tôi đã đọc một loạt các SO bài viết về lỗi này, hầu hết cho thấy rằng tôi đặt async thành true. Điều này DOES loại bỏ các thông báo lỗi, nhưng nó vẫn là một lỗi, và tôi không bao giờ nhận được dữ liệu hợp lệ. Dường như chỉ xóa thông báo lỗi không hữu ích.

Trong chế độ khó xử, trên cùng một máy tính, thiết bị này hoạt động hoàn hảo, đây có phải là vấn đề về chrome không? Một vấn đề xuất xứ? Có gì sai với cú pháp của tôi không?

+0

Đây có phải là yêu cầu tên miền chéo (tức là ứng dụng chính của bạn không hoạt động tại 'http: // 192.168.7.9')? – Steve

+0

@Steve Những máy này nằm trên cùng một mạng con, nhưng máy 192.168.7.9 không nằm trong một miền ... – Nicros

Trả lời

1

OK, có vẻ như bạn đang gặp sự cố với số same origin policy. Cách bạn đang làm, bạn không thể truy cập dữ liệu AJAX từ một máy chủ khác với máy chủ lưu trữ ứng dụng của bạn.

Để làm như vậy, bạn sẽ phải di chuyển chức năng http://192.168.7.9/api vào máy chủ của mình hoặc sử dụng JSONP để truyền dữ liệu. Here là một ví dụ về cách làm như vậy.

+0

Cho đến giờ không may mắn - tôi đang cố gắng sử dụng jsonp như được mô tả, nhưng bây giờ tôi gặp lỗi sau : 'jQuery19108882399478461593_1364424507799 không được gọi là'. Tôi nghĩ rằng tôi đọc một nơi nào đó máy chủ chính nó đã hỗ trợ jsonp? Có lẽ đó là những gì đang xảy ra? – Nicros

Các vấn đề liên quan