Проблема с window.open в FireFox - PullRequest
0 голосов
/ 17 мая 2011

У меня проблема с загрузкой файлов в Firefox.Я пытался найти решение в старых сообщениях, но ничего не нашел.Я понимаю, что решение очень простое, но я думаю, что сегодня не мой счастливый день:)

Простой пример.Я пытаюсь вызвать веб-метод из JavaScript и загрузить файл.

Код клиента:

 <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";
}

Папка «Файлы» находится вкорневая папка веб-приложения.

Для IE и Chrome этот код работает нормально, и я могу загрузить файл.Но в Firefox я получаю сообщение об ошибке:

Ошибка сервера в приложении '/'.

Ошибка HTTP 400 - неверный запрос.

и в URL я вижу, например: http://localhost:1406/\Files\test.zip

Как я могу вернуть правильный путь к zip-файлу?

Ответы [ 4 ]

1 голос
/ 17 мая 2011

URL не допускает обратную косую черту.

Если файл находится в \ Files \ test.zip в корне вашего веб-сервера Windows, правильный URL-адрес файла будет http: ///Files/test.zip

.
0 голосов
/ 24 мая 2011

Как правило, вы должны использовать ResolveUrl метод класса System.Web.UI.Control.Но в случае статического метода есть несколько обходных решений .

0 голосов
/ 17 мая 2011

Измените код на стороне сервера на:

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

Веб-URL должны использовать прямую и обратную косую черту.

0 голосов
/ 17 мая 2011

Замена следующих строк

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

с этим может работать ...

[System.Web.Services.WebMethod]
public static string Test()
{
  return "\\\\Files\\test.zip";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...