如果我使用POST,我可以调用我的ASP.Net页面方法,但如果我尝试GET则失败。 有什么想法吗?
var url = encodeURI(acx.opts.queryURL + "?t=" + acx.input.val());
acx.requestExe = $.ajax({ type: "GET",
url: url ,
//data: "{\"t\":\"" + acx.input.val() + "\"}", //Data To Send If POST
contentType: "application/json", //Of Request
dataType: "json", //Return Type Expected
cache: true,
success: function(d) { showQueryResults(acx,d); },
error: function(d)
{
var r = JSON.parse(d.responseText);
alert(r.Message);
}
});
答案 0 :(得分:0)
检查您的web.config system.web -> httpHandler
并确保您的处理程序允许使用GET动词。
答案 1 :(得分:0)
尝试指定option.data
:
acx.requestExe = $.ajax({
type: "GET",
url: encodeURI(acx.opts.queryURL),
data: "{\"t\":\"" + acx.input.val() + "\"}",
contentType: "application/json",
dataType: "json",
cache: true,
success: function(d) { showQueryResults(acx,d); },
error: function(d) {
var r = JSON.parse(d.responseText);
alert(r.Message);
}
});
而不是在查询字符串中手动构建它:
var url = encodeURI(acx.opts.queryURL + "?t=" + acx.input.val());
答案 2 :(得分:0)
尝试将data
作为对象传递:
acx.requestExe = $.ajax({
type: "GET",
url: acx.opts.queryURL,
data: {
t: acx.input.val()
},
contentType: "application/json",
dataType: "json",
cache: true,
success: function(d) {
showQueryResults(acx,d);
},
error: function(d) {
var r = JSON.parse(d.responseText);
alert(r.Message);
}
});