2015-07-21 19 views
5

Tôi có ứng dụng web và máy tính để bàn và tôi muốn kết nối chúng với các ổ cắm web. Vì vậy, trang web của tôi cố kết nối với wss: // localhost: 8080 chẳng hạn.Microsoft Edge không cho phép loopback cục bộ cho các ổ cắm web

Nó hoạt động trong IE11, nhưng trong "MS Edge" Tôi có một lỗi:

Cross zone request is not allowed

Tôi có vấn đề này trên Win10 10.240, vì vậy cờ "Allow localhost loopback" được kích hoạt theo mặc định, và nó đã không giúp được gì.

Khi tôi sử dụng CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe" hoặc utility này, tất cả đều hoạt động như mong đợi.

Vì vậy, đây có phải là trường hợp, trong bản xây dựng mới của vòng lặp "MS Edge" được phép cho http, nhưng không được phép cho websockets? Và nếu có, có thể thực hiện một số giải pháp thay thế và không buộc người dùng của tôi phải chạy một số tiện ích mở rộng vỏ hoặc tải xuống tiện ích externall không?

câu hỏi liên quan: Can't open localhost in Microsoft Edge (Project Spartan) in Windows 10 preview

Trả lời

4

Sau khi một số nghiên cứu tôi thấy nguồn gốc của lỗi. Dưới đây là repo của tôi, để tái tạo lỗi: https://github.com/AZaviruha/ms-edge-ws-strange

Nói tóm lại, khi bạn gọi new WebSocket trong MS Edge, nó không tạo ra ngoại lệ, khi bạn gọi nó với sai "địa phương" lập luận -host:

var socket, path; 
var hosts = ['localhost', '127.0.0.1']; 

for (var i in hosts) { 
    path = 'ws://'+hosts[i]+':9446'; 
    console.log('===> Tested path :: ', path); 
    try { 
     socket = new WebSocket(path); 
     break; 
    } 
    catch (e) { 
     // !!! Never shown !!! 
     console.error('===> WebSocket creation error :: ', e); 
    } 
} 

Vì lý do này, bạn không thể "thử lại" để kết nối với các máy chủ khác nhau.

Nhân tiện, nếu bạn thử máy chủ không tồn tại không phải cục bộ, nó sẽ tạo ra ngoại lệ!

+0

Bạn đang sử dụng công cụ gì của Edge? 10240? Bạn có thể kiểm tra bằng cách nhìn vào chuỗi Tác nhân người dùng cạnh ("Edge/12.XXXXX" trong đó XXXXX là số bản dựng). –

+0

Tôi đã sao chép hành vi này trên 10166 và 10240 – azaviruha

4

Trong loại trình duyệt Microsoft Edge "Giới thiệu: cờ" trong thanh tiêu đề (thanh tìm kiếm). Không có dấu ngoặc kép, Đánh dấu/Bỏ chọn tính năng "cho phép Localhost Loopback".

Edge trên Win Build 10240. (vẫn hoạt động như các build 14393)

+2

Cũng có sẵn trong sổ đăng ký tại đây: 'HKCU \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ CurrentVersion \ AppContainer \ Storage \ microsoft.microsoftedge_8wekyb3d8bbwe \ MicrosoftEdge \ ExperimentalFeatures \ AllowLocalhostLoopback' và, vâng, phần "8wekyb3d8bbw' xấu xí của khóa đăng ký hoàn toàn hợp lệ, đó là ID nhà phát triển duy nhất của Microsoft xuất hiện hàng trăm lần trong sổ đăng ký. – tresf

+0

Điều đó có vẻ nghiêm khắc nhưng không hoạt động đối với tôi –

1

này thời gian gần đây đã xảy ra với tôi một lần nữa sau khi làm Cập nhật Windows 10 Đấng Tạo Hóa của (1703).

Nhưng bản sửa lỗi thật dễ dàng. Tôi đã phải

  1. Kiểm tra "cho phép Localhost Loopback" tính năng được đề cập bởi @Narcarsiss (không chắc chắn nếu điều đó đã bị vô hiệu hóa trong bản cập nhật, hoặc tôi chỉ không bao giờ kiểm tra nó bản thân mình trước đây).
  2. Chỉ định giao thức trong thanh địa chỉ (http://localhost:5000/ thay vì chỉ localhost: 5000 /).

Sau khi thực hiện cả hai, tôi có thể truy cập lại vào các trang web lưu trữ cục bộ của mình trong MS Edge.

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