我需要通过Web服务将数据发布到后端。
我的网络方法是;
[WebMethod]
public string InsertData(string dData)
{
Log.Info(deviceData);
....
string status= serv.InsertData(dData);
return status;
}
如果我使用POST动词打电话给小提琴手,它会给出
请求格式无效
我的要求
请让我知道如何通过POST调用它。
GET运行正常。
答案 0 :(得分:0)
尝试:
[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public static string Example(string id)
{
return "it worked";
}
来自MSDN:
如果使用HTTP GET命令调用该方法,则为true;否则为true。如果为假 使用HTTP POST命令调用该方法。默认是 错误。
默认为false,因此您应该已经在使用POST。
关于调用它, 从jquery尝试:
<script>
$.ajax({
type: "POST",
url: "WebForm1.aspx/Example",
data: JSON.stringify({
'theIdToPass'
}),
contentType: "application/json; charset=utf-8",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
},
complete: function (jqXHR, status) {
alert("complete: " + status + "\n\nResponse: " + jqXHR.responseText);
}
});
</script>
答案 1 :(得分:0)
通过以下方式装饰您的课程:
[System.Web.Script.Services.ScriptService]
允许在使用AJAX的情况下对您的WebMethod进行POST请求。
ScriptService
使从JavaScript调用带有WebService属性修饰的Web服务变得容易。将ScriptService属性应用于WebService会使其接受输入参数的JSON(JavaScript对象表示法)数据并返回JSON数据。这完全消除了使用标准SOAP(简单对象访问协议)Web服务时必须解析XML的需要,也不再需要创建ASPX页面来劫持和解析/格式化输出。