Eu posso dizer que eu sei a resposta a esta mas eu tenho que perguntar porque você precisaria de fazer este através do webmethod quando um evento regular do lado de usuário conduziria provavelmente à mesma experiência de UI.
Isto é como eu o faço:
em um evento do clique da tecla:
Response.Clear ();
Response.ClearHeaders ();
Response.ContentType = “aplicação/pdf”;
//can igualmente seja “inline” em vez do “acessório” indicar imediatamente
Response.AddHeader (“Índice-Disposição”, “acessório; filename=DefaultSaveName.pdf”);
//you podia igualmente copiar bytes a Response.OutputStream
Response.WriteFile (@ " C:\blah\pdf\mypdf.pdf ");
Response.End ()
Isto conduz a nenhuma flash ou cintilação visível no navegador assim que eu não sou certo que ajax o compra aqui.
Se você pode o fazer por favor a maneira do ajax para afixar como. Eu sou curioso como você começ em torno da segurança do navegador.