请参考下面的代码
var pdf="xxxxxxx";
$.ajax({
type: "post",
url: "/Corporate/SampleChangeSummary/PDF",
data: JSON.stringify(pdf),
contentType: 'application/json',
dataType: 'json',
error: function (status, xhr) {
}
});
[HttpPost]
public ActionResult PDF(object pdf)
{
.......
}
但它返回 pdf 是空的。问题出在哪里?我的代码中有任何语法错误吗?
我相信contentType
是导致问题的原因。 在您的脚本中,您告诉$.ajax()
它正在发送 JSON 字符串,但您让它发送了一个.pdf。 相反,只需删除contentType
行并尝试一下。
其次,dataType: 'json'
告诉您的$.ajax()
它期待 JSON 格式的响应。 如果这就是你正在做的事情,那么你不必担心那条线。
编辑:
找到更多信息 - 如果您想保留contentType
,请修改为:contentType: application/pdf',
并在您的$.ajax()
发送到的 php 文件上添加header('Content-type: application/pdf');
。
试试这个:
$.ajax({
type: "post",
url: "/Corporate/SampleChangeSummary/PDF",
data: JSON.stringify({pdf: pdf}),
contentType: 'application/json',
dataType: 'json',
error: function (status, xhr) { }
});
ASP.NET MVC 要求您发送"键值"JSON 对象,以便它可以相应地绑定。此外,将object pdf
更改为 string pdf
。
试试这样的事情
$.ajax({
type: "POST",
url: '/Corporate/SampleChangeSummary/PDF',
data: { pdf: JSON.stringify(pdf) },
success: function (data) {
//do somthing with the result
},
error: function (error) {
alert('Please try again!');
}
});
var pdf="xxxxxxx";
$.ajax({
type: "post",
url: "/Corporate/SampleChangeSummary/PDF",
data: { "pdf" : pdf },
dataType: 'json',
error: function (status, xhr) {
}
});
[HttpPost]
public ActionResult PDF(object pdf)
{
.......
}
您不需要字符串化您的 PDF,因为它已经是字符串,请尝试将其直接传递给您的控制器。