2009-07-09 19 views
6

Tôi đã gặp sự cố sau, tôi nghĩ rằng có thể do phương pháp của tôi có thể bị sai lệch, nhưng hy vọng với sự giúp đỡ của bạn, tôi có thể sắp xếp điều này!Lỗi AJAX và NS_ERROR_DOM_BAD_URI

Về cơ bản, đối với trang web của tôi, tôi có nhà cung cấp dịch vụ tìm kiếm (đã được thanh toán, vì vậy tôi không vi phạm bất kỳ điều khoản sử dụng nào). Khi biểu mẫu tìm kiếm được gửi đi, tôi được chuyển hướng đến miền của họ, nơi kết quả được hiển thị.

Trong khi tôi có thể tùy chỉnh giao diện của kết quả được trả lại, chỉ có cho đến nay tôi có thể thực hiện việc này và sẽ không bao giờ làm cho nó phù hợp hoàn toàn với giao diện của trang web của tôi. Vì vậy, tôi nghĩ, thay vì thực hiện GET thông thường thông qua biểu mẫu, tôi sẽ thực hiện AJAXified GET và sau đó đưa phản hồi trả về vào div trên trang - cho phép tôi duy trì giao diện và không bao giờ rời khỏi trang web của mình miền.

Điều này làm việc tốt trong IE nhưng trong firefox tôi nhận được "text/html (NS_ERROR_DOM_BAD_URI)" dưới dạng lỗi. Sau khi thực hiện một số nghiên cứu tôi đã phát hiện ra điều này là do yêu cầu AJAX đánh một trang web bên ngoài miền của chúng tôi.

Vì vậy, có cách tiếp cận tốt hơn tôi có thể thực hiện để đạt được hiệu quả tương tự không? hoặc là có một cách tôi có thể nhận được firefox và yêu cầu AJAX của tôi để chơi tốt đẹp? Điều gì thực sự lạ là nếu tôi quan sát yêu cầu trong HttpFox (một FF gọn gàng thêm vào), nó báo cáo lỗi trên, nhưng nhìn vào nội dung trả về nó là tất cả ở đó như mong đợi - vậy tại sao tôi không thể truy cập nó! !

Tôi thực sự muốn làm việc này vì nó đơn giản hơn rất nhiều so với viết lại tất cả CSS và nội dung của chúng tôi để có được trang kết quả trông giống như trang web của chúng tôi. Bất kỳ sự giúp đỡ nào trong lĩnh vực này sẽ được đánh giá cao.

Trả lời

1

Bạn sẽ phải sử dụng JSONP để thực hiện các tên miền chéo theo như tôi biết - đó là ngoại lệ bảo mật trong AJAX. JQuery xử lý nó độc đáo nhưng, bạn sẽ phải có trả lời máy chủ được sửa đổi để phù hợp với nó.

Tôi đã thực hiện dự án PMNM cho Hành động trên mạng xã hội thực hiện việc này bằng proxy PHP. Bạn có thể xem tại đây: http://os.adamaltemus.com/social-actions/

0

Cũng có thể nếu bạn hiện đang ở trên trang web http và đang cố gắng gửi cuộc gọi AJAX đến trang web https trên cùng một tên miền.