我有两个应用程序,一个在C#中,另一个使用 jquery mobile,phonegap和使用Web服务;这是我在C#中使用的方法,将一些数据导出为PDF:
public void exportToPDF(object sender, EventArgs e)
{
SqlConnection conn = Classes.DbManagement.getConnection();
conn.Open();
SqlCommand objCmd = null;
String sql = "";
String fileName = "";
DataSet ds1 = new DataSet();
SqlDataAdapter da;
DataSet1 ds = new DataSet1();
CrystalReport1 cr1 = new CrystalReport1();
sql = "SELECT userId " +
"FROM isProductReport"'";
objCmd = new SqlCommand(sql, conn);
objCmd.ExecuteNonQuery();
da = new SqlDataAdapter(objCmd);
ds1.EnforceConstraints = false;
da.Fill(ds1, "isProductReport");
cr1.SetDataSource(ds1);
fileName = "reporte de inventario " + DateTime.Now.ToString("dd/MM/yyyy hmmtt");
cr1.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, fileName);
}
它在C#应用程序中运行良好,它允许我保存报表,我想在Web服务调用中使用相同的方法,我将使用json以下列方式使用:
function exportToPDF()
{
var userIdValue = $("#username").val();
$.ajax({
type: "POST",
contentType: "application/json",
url: "http://localhost/Service1.svc/exportToPDF",
data: JSON.stringify({ userId: userIdValue }),
dataType: "json",
success: function (data){
},
error: function(result){
alert(result.status + ' ' + result.StatusText);
}
});
}
但显然,我没有得到任何东西,此时,我不知道如何继续以便能够保存PDF,我将非常感谢一些指导,非常感谢!
编辑:
这是操作合同声明:
[WebInvoke(Method = "GET")]
[OperationContract]
void exportToPDF();
如果它有帮助。
答案 0 :(得分:0)
如果PDF根本不是JSON文件,您希望如何使用JSON?
由于它是一个文件,您可以轻松打开此URL,浏览器将开始自行下载:
window.open('http://localhost/Service1.svc/exportToPDF');
// or
window.location.href = 'http://localhost/Service1.svc/exportToPDF';
但是,您的方法是使用POST方法。您需要使用GET方法以这种方式访问它。在使用WCF时,请将WebGetAttribute
添加到Service1.svc
。
[WebGet]
public void exportToPDF()
{
//...
}