Tôi sắp rút ra bất kỳ phần tóc còn lại nào mà tôi có, vì vậy hãy giúp tôi nếu bạn biết vấn đề có thể là gì ... Cảm ơn. Tất cả các googling và tìm kiếm của tôi đã không được trả hết.jquery ajax với asp.net không hoạt động
Trước tiên, tôi đang sử dụng biểu mẫu web jquery-1.7.2.min.js và ASP.net 2.0.
Tôi đang cố thực hiện cuộc gọi ajax bằng jquery nhưng vẫn nhận được thông báo lỗi lỗi/phân tích lỗi cú pháp. Tôi đã thử nhiều cách khác nhau nhưng tất cả đều dẫn đến lỗi khi tôi đặt dataType thành json.
Dưới đây là những gì tôi có:
$.ajax({
type: "POST",
url: "UserList.aspx/GetTestJson",
data: {}, //have also tried "{}" and other options such as removing the line
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function(data, textStatus, jqXHR){
alert('success');
},
//Using below instead of above makes no difference either
//success: function(data){
// alert('success');
//},
error: function(jqXHR, textStatus, errorThrown){
alert('errorThrown: ' + errorThrown);
}
});
và phương pháp trang aspx:
[WebMethod]
public static string GetTestJson()
{
return "Hello My World";
}
Tôi đã cố gắng thiết lập một dịch vụ web quá, nhưng có được kết quả tương tự. Có vẻ như phản hồi quay lại là html đầy đủ cho trang hoặc xml từ dịch vụ web và bởi vì tôi đặt dataType thành json, nó không thành công trong việc phân tích cú pháp nó. Nếu trường hợp này xảy ra, làm cách nào để đặt phản hồi chỉ trả về json?
Đây là cái gì khác tôi đã cố gắng mà không may mắn: thông điệp
[WebMethod]
public static string GetTestJson()
{
HttpContext.Current.Response.ContentType = "application/json";
string json = JavaScriptConvert.SerializeObject("Hello My World");
return json;
}
Lỗi tôi nhận được thông qua jQuery:
errorThrown.message = "Syntax error"
errorThrown.number = -2146827286
errorThrown.name = "SyntaxError"
textStatus = "parseerror"
jqXHR.status = 200
jqXHR.statusText = "OK"
jqXHR.readyState = 4
jqXHR.responseText = (the complete html of the page)
Bất kỳ ý tưởng hoặc đề nghị?
Cảm ơn
Chỉ đặt tiêu đề HTTP kiểu nội dung không thực sự thay đổi nội dung phản hồi. Bạn cần tự chuyển đổi dữ liệu sang JSON. Ngoài ra, [WebMethod] thường được sử dụng cho các dịch vụ SOAP, chứ không phải các dịch vụ web kiểu RESTful. – Dai
Đó là một phần đúng, PageMethods được sử dụng cụ thể trong các tình huống AJAX, họ đặt kiểu phản hồi thành json theo mặc định – Jupaol
Bạn có thể đăng lỗi chính xác mà bạn đang nhận được – Jupaol