【发布时间】:2014-11-18 09:20:18
【问题描述】:
我有一个这样的简单控制器功能:
<HttpPost>
Function SaveXML(payload As String) As Boolean
If payload IsNot Nothing AndAlso payload.Length > 0 Then
Return True
Else
Return False
End If
End Function
我是这样从 JavaScript 调用的:
function SaveXML() {
var payload = '<?xml version="1.0" encoding="utf-8"?><data>XML_GOES_HERE</data>';
// Calls controller correctly but data is null
$.ajax({
url: "/Data/SaveXML/",
type: "POST",
processData: false,
contentType: "text/xml",
data: payload
})
.done(function () { alert('Application saved.'); })
.fail(function () { alert('Application failed to save.'); });
}
我以JQuery documentation 上的示例为基础,并参考了here、here 和here 的一些建议。我已经尝试过使用和不使用processData: false 并没有区别。
当调用进入 Controller 方法时,有效负载是 null。 If I post a simple string using some very similar code everything works fine。为了通过$.ajax 将 XML 发布到控制器,究竟需要做什么?问题出在 JavaScript 端还是 Controller 端?
【问题讨论】:
标签: javascript jquery ajax asp.net-mvc vb.net