我只想更新XML文件中的startDate,所以我真的不需要任何回复。是否需要某种返回数据才能使用jQuery $ .ajax?
如果是这样我可以返回一个布尔值?如果是这样,我该怎么做?
JS
function updXmlStartDate() {
//
alert("post");
$.ajax({
type: "POST",
url: "Login.aspx/UpdateImageStartDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert("yay!");
},
error: function (result) { alert("Sorry!!! "); }
});
}
VB
<System.Web.Services.WebMethod()>
Public Shared Function UpdateImageStartDate(ByVal newStartDate As String) As String
'update xml
Dim var1 = 1
End Function
现在我在.NET函数上设置了一个断点,但它没有达到它。
答案 0 :(得分:3)
正如@Logan Murphey在问题上所评论的那样,ajax对象中的数据字段需要设置为data: "{'newStartDate':'" + yourstartdate + "'}"
或data:JSON.stringify({newStartDate:yourstartdate})
。
您还发送了&#34; POST&#34;在你的ajax电话中。要获得服务,服务类必须包含<ScriptService()>
标记,除了自动添加到Service类和方法中的标记外,您的方法还必须包含<ScriptMethod()>
标记。
示例:
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
<ScriptService()>
Public Class Service
Inherits System.Web.Services.WebService
<WebMethod()> _
<ScriptMethod()> _
Public Function MyMethod() As Boolean
'... do some work ...
Return True
End Function
End Class
Fiddler是检查服务电话未被点击的绝佳工具。我强烈建议在首次学习对Web服务进行异步调用时使用它或类似的东西。它可以告诉您的信息对于调试以下内容非常有用:
答案 1 :(得分:2)
试试这个: -
您需要将输入参数作为Json
对象发送: -
function updXmlStartDate() {
alert("post");
input = { newStartDate: "hello" };
var strRequest = JSON.stringify(input);
$.ajax({
type: "POST",
url: "Login.aspx/UpdateImageStartDate",
data: strRequest,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert("yay!");
},
error: function (result) { alert("Sorry!!! "); }
});
}
此外,您只需从WebMethod
返回一个布尔值,如下所示: -
<System.Web.Services.WebMethod()>
Public Shared Function UpdateImageStartDate(ByVal newStartDate As String) As Boolean
Dim var1 = 1
Return True
End Function
并在客户端检索它: -
result.d
将为您提供返回的布尔值,或者&#39; true&#39;或者&#39; false&#39;。