Dưới đây là một số javascript:Phương thức post() của jquery có thể gọi một trang web asp.net 3.5 không?
$.ajax({
type: "POST",
url: "default.aspx/GetDate",
contentType: "application/json; charset=utf-8",
data: {},
dataType: "json",
success: function(result) {
alert(result.d);
}
});
Các phương pháp trên làm việc như tôi mong chờ và cảnh báo chuỗi trở về từ [WebMethod] gọi getdate trong default.aspx
Nhưng khi tôi sử dụng:
$.post(
"default.aspx/GetDate",
{},
function(result) {
alert(result.d);
},
"json"
);
Cảnh báo trong phương pháp thành công này không bao giờ cháy.
Trong firebug tôi có thể thấy POST đã hoạt động cơ bản - nó trả về 200 OK
Nhưng phản hồi trong trường hợp này là HTML của toàn bộ trang default.aspx chứ không phải JSON trả về khi tôi sử dụng $ .ajax() phương pháp.
EDIT:
Phản hồi và tiêu đề yêu cầu được hiển thị trong firebug KHÔNG giống nhau.
Với $ .ajax() ...
REQUEST:
Accept application/json, text/javascript, */*; q=0.01
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding gzip, deflate
Accept-Language en-gb,en;q=0.5
Connection keep-alive
Content-Type application/json; charset=utf-8
Cookie (removed)
Host (removed)
Referer (removed)
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
X-Requested-With XMLHttpRequest
RESPONSE:
Cache-Control private, max-age=0
Content-Length 27
Content-Type application/json; charset=utf-8
Date Wed, 11 Jan 2012 12:36:56 GMT
Server Microsoft-IIS/7.5
X-Powered-By ASP.NET
Với $ .post() ...
REQUEST:
Accept application/json, text/javascript, */*; q=0.01
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding gzip, deflate
Accept-Language en-gb,en;q=0.5
Connection keep-alive
Cookie (removed)
Host (removed)
Referer (removed)
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
X-Requested-With XMLHttpRequest
RESPONSE:
Cache-Control private
Content-Length 13815
Content-Type text/html; charset=utf-8
Date Wed, 11 Jan 2012 12:36:53 GMT
Server Microsoft-IIS/7.5
X-AspNet-Version 2.0.50727
X-Powered-By ASP.NET
Tôi có thể sử dụng phương pháp này $ .post() cho điều này, hoặc tôi có phải sử dụng phương thức $ .ajax() không?
Bạn có chắc chắn * các tiêu đề yêu cầu giống nhau không? Tiêu đề 'Content-Type' có thay đổi không? – lonesomeday
Bạn có chắc chắn cần gọi một dịch vụ web không? Tôi đã thực sự làm điều này bằng cách sử dụng $ .get và trả về HTML thuần túy (không có tiêu đề) và nó hoạt động hoàn hảo cho các nhu cầu của tôi. Nếu điều này sẽ giúp sau đó cho tôi biết và tôi sẽ đăng một số mã. – Archer
Nhiều lần như tôi đã đọc chúng @lonesomeday, sự nghi ngờ của bạn là chính xác - "Content-Type: application/json; charset = utf-8" thực sự là trong Request Headers từ cuộc gọi $ .ajax(). – mikev2