我正在创建一个.net应用程序。我只是想得到这个"嗨"我的ajax调用中的字符串。我需要做什么?现在我一直都是未定义的。没别了。
我的客户端脚本看起来像打击
<script type = "text/javascript">
$(document).ready(function () {
$('.cart').click(function () {
var id = $(this).attr('id');
CallAddCart(id);
});
});
function CallAddCart(ItemId) {
$.ajax({
type: "POST",
url: "SearchParts.aspx/AddShopCart",
data: '{ItemId: "' + ItemId + '"}',
contenttype: "application/json; charset=utf-8",
datatype: "json",
success: function (data) {
OnSuccess(data);
},
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert('On sucess' + response);
alert(response);
}
</script>
我的服务器端看起来像
[WebMethod()]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string AddShopCart(string ItemId)
{
return "Hi";
}
更新:
问题解决了
这是导致这些问题的一个小错误。问题出在&#34; contenttype&#34;和&#34;数据类型&#34;。两种类型&#34; t&#34;这应该是大写字母。 ie&#34; contentType&#34;和&#34; dataType&#34; :)现在它能够得到嗨:))
答案 0 :(得分:3)
我建议以JSON类型返回值
[WebMethod()]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string AddShopCart(string ItemId)
{
var result = new { d = "Hi" };
return JsonConvert.SerializeObject(result);
}
在Javascript中
success: function (data) {
OnSuccess(data.d);
}
答案 1 :(得分:2)
[WebMethod]
public static string AddShopCart(string ItemId)
{
return "Hi";
}
删除它。 [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
在Javascript中
success: function (data) {
OnSuccess(data.d);
}
信用:http://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx
答案 2 :(得分:0)
导致问题的区分大小写。在下面的脚本中我更新了正确的用法
以前它是&#34; contenttype&#34;和&#34;数据类型&#34;。现在更改为contentType和dataType
<script type = "text/javascript">
$(document).ready(function () {
$('.cart').click(function () {
var id = $(this).attr('id');
CallAddCart(id);
});
});
function CallAddCart(ItemId) {
$.ajax({
type: "POST",
url: "SearchParts.aspx/AddShopCart",
data: '{ItemId: "' + ItemId + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
OnSuccess(data);
},
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert('On sucess' + response);
alert(response);
}
</script>