8

Tôi đã gãi đầu cố gắng tìm ra lý do tại sao dự án tôi có (những gì tôi không chạm) không hoạt động nữa.Google Api Redirect cung cấp cho tôi lỗi 404 trên WP7 Khi sử dụng Windows 8 nhưng không phải Windows 7

Về cơ bản, tôi đang cố gắng lấy lại một số dữ liệu từ danh bạ Google. Khi tôi chọn "cho phép" trong phần oAuth, nó sẽ tiếp tục cho tôi lỗi 404. Tất cả điều này được thực hiện trong trình giả lập Windows Phone 7.

Sau đó tôi nhận ra rằng tôi đã ở trên phân vùng Windows 8 của mình nên tôi quay lại phân vùng 7 cửa sổ của mình và nó hoạt động.

Tự hỏi nếu đó là sự cố IE 10 hay gì đó. Bất cứ ai có bất kỳ lý thuyết về lý do tại sao điều này đang xảy ra?

Sửa

Dưới đây là một số mẫu mã nhanh chóng Tôi whipped lên có lẽ ai đó có thể thử nó và cho tôi biết những gì đang xảy ra.

string clientId = "You client id here"; 

     public MainPage() 
     { 
      InitializeComponent(); 

      string url = String.Format("https://accounts.google.com/o/oauth2/auth?scope=https://www.google.com/m8/feeds&redirect_uri=http://localhost&response_type=code&approval_prompt=auto&client_id={0}", clientId); 
      webBrowser1.Navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(webBrowser1_Navigated); 



      webBrowser1.Navigate(new Uri(url, UriKind.Absolute)); 




     } 



     void webBrowser1_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) 
     { 
      var queryParmas = e.Uri.ParseQueryString(); 

      foreach (var item in queryParmas) 
      { 
       if (item.Key == "code") 
       { 
        string test1 = "If you got here then it works"; 
        string test2 = "in windows 8"; 

       } 
      } 
     } 


    } 

XAML

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
      <phone:WebBrowser HorizontalAlignment="Left" IsScriptEnabled="True" Name="webBrowser1" VerticalAlignment="Top" Height="669" Width="468" /> 
     </Grid> 

Edit2

Họ phát hành IE 10 cho Windows 7 vì vậy tôi cài đặt đó và nó vẫn hoạt động trên Windows 7 vì vậy tôi đoán nó không phải là một vấn đề IE. Phải là một cái gì đó với Windows 8? Có lẽ là iis?

Edit3

Đây là một dòng chảy của những gì đang xảy ra trong Windows 7

  1. ứng dụng khởi động và tải MainPg.xmal
  2. lèo lái được kích hoạt nhưng câu lệnh if được bỏ qua
  3. Người dùng đã đăng nhập Trang Đăng nhập Google và nhập thông tin và lượt truy cập đăng nhập
  4. Điều hướng được kích hoạt nhưng nếu tuyên bố tôi s bỏ qua
  5. tài thấy "trang yêu cầu" và phải cho phép quyền ứng dụng
  6. tài hit phép
  7. lèo lái được kích hoạt và đi vào "nếu" tuyên bố
  8. tài thấy IIS 7 màn hình.

Đây là một dòng chảy của những gì đang xảy ra trong Windows 8

  1. ứng dụng khởi động và tải MainPg.xmal
  2. lèo lái được kích hoạt nhưng câu lệnh if được bỏ qua
  3. tài Ðến Google Đăng nhập Trang và đi vào trong thông tin và hit đăng nhập
  4. lèo lái được kích hoạt nhưng câu lệnh if được bỏ qua
  5. tài thấy "trang yêu cầu" và phải cho phép quyền ứng dụng
  6. Lượt truy cập của người dùng cho phép
  7. Chuyển đến trang 404 Điều hướng không được kích hoạt.

Như bạn có thể thấy mọi thứ sai sau khi nhấn nút cho phép. Trong Windows 7, nó quay trở lại phương thức Navigated và sau đó hiển thị trang chào đón IIS 7 nhưng trong Windows 8 sau khi nút cho phép được nhấn nó không đi đến trang điều hướng và hiển thị 404 thay thế.

+0

chính xác bạn đã trao đổi gì với phân vùng win7 của mình? – sschrass

+0

Tôi không hiểu ý bạn là gì? Tôi có cửa sổ khởi động kép 8 và windows 7. Tôi có cửa sổ 7 điện thoại sdk và VS 2010 được cài đặt trên cả hai. Nếu tôi lấy cùng một dự án và chạy nó trong Windows 8 thì nó không hoạt động. Nếu tôi chạy nó trong windows 7 nó hoạt động. – chobo2

+0

Cảm ơn, đó là điều tôi muốn biết. Nó không rõ ràng với tôi, thời tiết bạn chỉ cần di chuyển một số tập tin hoặc chạy hệ điều hành khác. Tôi hoàn toàn không nhận thức được những gì bạn làm ở đó chính xác, nhưng 'localhost' làm cho tôi nghi ngờ nếu bạn đang chuyển đổi hệ điều hành. – sschrass

Trả lời

0

Bạn nên sử dụng trình xử lý sự kiện "Điều hướng", không phải trình xử lý sự kiện "Điều hướng". Điều này sẽ cho phép bạn hủy điều hướng khi bạn nhận được giá trị mã. Trình xử lý điều hướng được gọi sau khi điều hướng và vì url gọi lại không thực sự tồn tại, nó sẽ ném lỗi 404. Có vẻ như nó đang hoạt động chính xác trên Windows 8 của bạn, không chắc chắn lý do tại sao bạn không nhận được 404 trên Windows 7 vì bạn sẽ thấy nó ở đó.

+0

Tôi nghĩ rằng tôi đã cố gắng điều hướng nhưng tôi sẽ thử lại để kiểm tra lại và bạn đã đảo ngược. Nó hoạt động trên Windows 7 nhưng không phải trên Windows 8. – chobo2

+0

Điều tôi đang nói là bạn "nên" gặp lỗi 404 khi sử dụng sự kiện "điều hướng" vì sự kiện được gọi sau khi điều hướng hoàn tất và url gọi lại trỏ tới vị trí không hợp lệ. Trình điều khiển sự kiện "điều hướng" sẽ được gọi trước khi điều hướng đến url gọi lại để nó cho bạn cơ hội phân tích cú pháp url trước khi điều hướng, vì vậy nó sẽ không cung cấp lỗi 404. – Jon

+0

Hmm lạ. Vâng điều hướng dường như cung cấp cho tôi phần mã để ít nhất là tốt thì tôi đoán từ phương pháp đó tôi sẽ gọi một cái nhìn mới thay vì để cho nó chuyển hướng đến localhost? – chobo2

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