gpt4 book ai didi

javascript - 使用 $.ajax 将 XML POST 到 MVC Controller 方法

转载 作者:行者123 更新时间:2023-11-30 05:31:05 25 4
gpt4 key购买 nike

我有一个像这样的简单 Controller 函数:

<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 方法时,有效负载为 nullIf I post a simple string using some very similar code everything works fine .要通过 $.ajax 将 XML 发布到 Controller ,究竟需要做什么?问题出在 JavaScript 端还是 Controller 端?

最佳答案

我最终设法找到了一些关于此的提示,并以以下代码结束:

$.ajax({
url: "/Data/SaveXML/",
type: "POST",
processData: false,
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ payload: payload })
})
.done(function () { alert('Application saved.'); })
.fail(function () { alert('Application failed to save.'); });

关键区别在于contentType设置为application/json,数据被转换为一个对象,然后通过JSON.stringify运行 方法,以确保不适合 querystring 的各种字符可以无误地发送。

关于javascript - 使用 $.ajax 将 XML POST 到 MVC Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26990601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com