2009-12-14 51 views
11

Ok điều này thật lạ.Firefox thực hiện hai yêu cầu HTTP

Nếu tôi yêu cầu trang, nơi văn bản/html, firefox sẽ thực hiện một yêu cầu.

Nếu tôi thực hiện yêu cầu đến trang, nơi ứng dụng/xml, firefox sẽ thực hiện hai yêu cầu.

Trong IE, Google Chrome, một trong số đó là một trong hai trường hợp.

Bất kỳ ý tưởng nào tại sao hai yêu cầu và cách tôi có thể ép buộc chỉ một yêu cầu?

+3

mã ví dụ plllllllzzzzzzzz – Jason

+1

Tôi gặp sự cố khi bộ chống vi-rút trên máy tính gây ra lỗi này. Chúng tôi đã dành thời gian để gỡ lỗi điều này, cố gắng tìm ra lý do tại sao IE gửi hai yêu cầu mỗi lần, khi các trình duyệt khác không thực hiện. Tôi biết rằng trong trường hợp của bạn là Firefox, nhưng nó vẫn có thể đáng để kiểm tra. – jalf

+0

@PiPeep, nhiệm vụ đó là về một tệp video OGG và câu trả lời là đặc biệt về tìm kiếm trong tệp video. Đây là một tập tin html. Firefox không cần phải "tìm kiếm" trong tệp html, do đó câu hỏi đó không thể được coi là trùng lặp. – Marius

Trả lời

3

Tôi đã gặp sự cố tương tự nếu mã hóa của trang không khớp với thẻ <meta>. Nếu trang được mã hóa bằng cách sử dụng mã hóa cửa sổ mặc định, nhưng thẻ meta được chỉ định UTF-8 thì firefox sẽ ngừng tải xuống khi nó đạt đến ký tự không phải ascii (ví dụ: ø, ø hoặc å) và ​​nó sẽ tải xuống lại trang ngay từ đầu. Điều này sẽ làm lộn xộn số lượt xem và nhiều logic khác vì kịch bản lệnh phía máy chủ sẽ chạy hai lần.

Có thể là nếu bạn không khởi động trang của mình bằng <?xml ?>, nhưng hãy xác nhận rằng đó là, thì Firefox sẽ tải lại trang lại dưới dạng html (văn bản/html) và xử lý dưới dạng html.

0

Đã tìm thấy sự cố.

XML gói tôi đã trở về đã có một nút gốc của <feed>

Firefox đi này hai lần đối với một số lý do, có lẽ vì nó đang cố gắng để xác định nếu điều này là một thức ăn ATOM/RSS hợp lệ. Nếu không, chỉ cần hiển thị thay thế?

Thay đổi nút gốc thành một cái gì đó khác đã khắc phục được sự cố.

Cảm ơn Marcus đã bắt đầu cho tôi đi đúng hướng.

1

Có thể bạn đang đưa ra yêu cầu theo cách gây ra HTTP Access Control tính năng kích hoạt?

Đây là một tiêu chuẩn khá mới và mới trong [FF3.5] [2] có thể gây ra yêu cầu GET kép.

Trong trường hợp bạn có thể ngửi phía máy chủ yêu cầu: xem chúng có chứa tiêu đề Origin: hay không.

[2]: https://developer.mozilla.org/En/Server-Side_Access_Control Server-Side Access Control

1

Trong trường hợp của tôi đó là một sai tiêu đề content-type "image/jpg" gửi kèm theo hình ảnh PHP tạo ra. yêu cầu đôi đi sau khi tôi thay đổi loại thành "image/jpeg"

Thông tin thêm về lỗi này ... https://bugzilla.mozilla.org/show_bug.cgi?id=236858

2

Chỉ cần thêm một khả năng khác ...

Nếu mã html có chứa một rỗng img src thuộc tính, sau đó điều này gây ra một yêu cầu 2 http trong cả Firefox và Chrome. Hiện tại, đó là những cái tuân theo chuẩn cho chữ cái, trong đó nói rằng một tham chiếu URI rỗng ám chỉ đến URI cơ sở tuyệt đối.

1

Tôi cũng gặp vấn đề này và tôi đã tìm ra nó. Đây có thể là liên quan đến Không tồn tại favicon.ico. chi tiết here, bạn có thể kiểm tra nó bằng cách sử dụng mã sau đây (nút.js) ,:

var http = require('http'); 
server = http.createServer(function (req,res){ 

    console.log(req.url); 
    res.writeHeader(200,{"Content-Type":"text/html"}); 
    res.end("Hello World"); 
}) 
server.listen(8000); 
console.log("httpd start @8000"); 

kết quả dự kiến ​​sẽ được:

httpd start @8000 
/
/favicon.ico 
1

Tôi đã có một vấn đề tương tự với Firefox. Có thể giúp ai đó. FF đã thực hiện hai yêu cầu HTTP GET trong khi Chrome không thực hiện.

Sự cố là thuộc tính trống src="". Firefox coi các trình thu thập trống như vậy đối với thẻ img/script ... là url hiện tại và NHẬN trang hiện tại.

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