我在.js文件中有以下jQuery ajax请求:
$.ajax({
type: "GET",
url: "Download.aspx/ZipCheck",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
success: AjaxSucceeded,
error: AjaxFailed
});
function AjaxSucceeded(result) {
alert(result.d);
}
function AjaxFailed(result) {
alert(result.status + ' ' + result.statusText);
}
请求失败,弹出一个“200 OK”的警告。但是,如果我将ajax请求类型更改为“POST”,那么它可以工作,我会弹出一个警报,其中包含从Download.aspx / ZipCheck返回的预期数据。
为什么GET会失败,为什么POST会成功?我的理解一定是两者之间存在差异,因为我认为GET请求仍会从服务器返回一些内容。
答案 0 :(得分:1)
WebMethods are by default restricted to POST,您需要明确启用GET请求,例如在UseHttpGet
上使用ScriptAttribute
,如下所示:
[WebMethod, ScriptMethod(UseHttpGet=true)]
public thing ZipCheck() {
//return object
}