2011-05-16 72 views
0

我在Firefox中下載文件時遇到問題。我試圖找到舊帖子的解決方案,但我沒有找到任何東西。我明白這個解決方案非常簡單,但我認爲今天不是我的幸運日:) :)FireFox中的window.open問題

簡單的例子。我嘗試從JavaScript調用Web方法並下載文件。

客戶端代碼:

<script language="javascript" type="text/javascript"> 
     function Test() {    
      PageMethods.Test(onCompleted); 
     } 

     function onCompleted(result) { 
      window.open(result);       
     }   
    </script> 

........ 

<asp:ScriptManager ID="ScriptManager" runat="server" EnablePageMethods="true"> 
    </asp:ScriptManager> 

    <div> 
    <input type=button value="Download" onclick="Test()"/> 

    </div> 

服務器端:

[System.Web.Services.WebMethod] 
public static string Test() 
{ 
    return "\\Files\\test.zip"; 
} 

文件夾 '文件' 在於Web應用程序的根文件夾。

對於IE和Chrome,此代碼工作正常,我可以下載該文件。但在Firefox中,我得到一個錯誤:

Server Error in '/' Application.

HTTP Error 400 - Bad Request.

和網址,我可以看到,例如: http://localhost:1406/ \文件\ test.zip

我怎樣才能返回正確路徑到壓縮文件?

+0

此文件是否位於您的內部網絡上,位於Internet可訪問的位置? – 2011-05-16 20:19:15

+1

你可能只需要讓你的「\\」變成「/」 – Avitus 2011-05-16 20:20:40

+0

你是否嘗試過使用正斜槓而不是反斜槓?畢竟,你正在形成一個URL,反斜槓在URL中不是有效的分隔符。 – Pointy 2011-05-16 20:21:37

回答

-2

更換以下行

[System.Web.Services.WebMethod] 
public static string Test() 
{ 
    return "\\Files\\test.zip"; 
} 

與這些可能的工作...

[System.Web.Services.WebMethod] 
public static string Test() 
{ 
    return "\\\\Files\\test.zip"; 
} 
+0

做得非常好。一個負面的評論,沒有理由.... :(呃... – 2011-05-16 20:25:40

+0

downvote不是我的,但也許這是因爲字符串已經逃脫使用C#約定 – 2011-05-16 20:34:12

+0

嗯,我沒有downvote,但你的答案肯定贏了沒有幫助 - 你已經添加了*更多*反斜槓,但是需要做的是改爲「/」字符。 – Pointy 2011-05-16 20:34:17

1

URL鴕鳥政策允許反斜槓。

如果該文件位於\文件\ test.zip您的Windows Web服務器的根正確的URL的文件是http:///Files/test.zip

0

改變服務器端代碼:

[System.Web.Services.WebMethod] 
public static string Test() 
{ 
    return "/Files/test.zip"; 
} 

網址應該使用正斜槓而不是反斜槓。