我正在尝试使用包含Ajax Call请求的函数调用WebMethod。但它正在提供Internal Server error 500
。这是包含Ajax的函数..
function ajaxCall(URL) {
var serverData = "";
$.ajax({
url: URL,
dataType: 'json',
contentType: "application/json; charset=utf-8",
type: 'POST',
success: function (queriedData, textStatus, XMLHttpRequest) {
serverData = queriedData;
},
error: function (request, status, error) {
alert(error);
}
});
return serverData;
}
在这里我试着调用这个jquery函数..
var checkInBookingIDData = ajaxCall(URL);
,这是我试图传递的URL值。
Default.aspx/getCheckinData?BookingId=102
我无法找出我出错的地方。请帮助我..谢谢..
更新
[WebMethod]
public static string getCheckinData(string BookingID)
{
//My code goes her
}
答案 0 :(得分:0)
尝试这种方式(注意参数如何作为data: { BookingId: 102 }
传递):
function ajaxCall(URL) {
// URL must be .../Default.aspx/getCheckinData
var serverData = "";
$.ajax({
url : URL,
data: { BookingId: 102 },
dataType : 'json',
contentType : "application/json; charset=utf-8",
type : 'POST',
success : function (queriedData, textStatus, XMLHttpRequest) {
serverData = queriedData;
// process serverData here
},
error : function (request, status, error) {
alert(error);
}
});
// This won't work this way
//return serverData;
}
答案 1 :(得分:0)
如果您将请求类型定义为POST,则不能通过URL直接传递查询字符串参数,因为这将是GET请求Refer。在POST请求中,查询字符串作为HTTP消息体发送。格式应如下:
function ajaxCall(URL) {
var serverData = "";
$.ajax({
url: URL,
dataType: 'json',
contentType: "application/json; charset=utf-8",
type: 'POST',
data: JSON.stringify({ BookingId: '102' }),
success: function (queriedData, textStatus, XMLHttpRequest) {
serverData = queriedData;
},
error: function (request, status, error) {
alert(error);
}
});
return serverData;
}
只需确保您的网址以您的方法名称“ Default.aspx / getCheckinData ”结尾。