Tôi đang cố gắng tạo một yêu cầu ajax cho một WebService trả về dữ liệu cho một số tham số được chỉ định trong XML. Điều này dường như hoạt động tốt trong IE, nhưng Firefox không thể giải mã phản hồi. Tôi có thể xem phản hồi thành công trong Fiddler sau khi giải mã. Đây là mã:
$(function() {
$.ajax({
type: "GET",
url: 'http:/localhost/webservice.asmx/GetTags?groupId=10',
contentType: "text/xml; charset=utf-8",
dataType: "xml",
success: function(response) {
$('#result').html('success',response);
$(response).find("string").each(function() {
$('#result').append($(this).text());
});
},
error: function(response) {
$('#result').html('failure',response);
}
});
});
Có cách nào để xác định rằng phản hồi cần được giải mã không? Hoặc bất kỳ cách nào khác để làm cho nó hoạt động?
EDIT: @ Nikki9696 - nó không được mã hóa JSON khi dữ liệu được trả về trong XML.
@Oleg - XML mẫu tôi có thể nhìn thấy trong trình duyệt nếu truy cập vào webservice thông qua một URL như sau:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<string>tag 1</string>
<string>tag 2</string>
<string>tag 3</string>
</ArrayOfString>
Các cáy trong TextView trả �
và nhắn
"đáp ứng được mã hóa và có thể cần phải được giải mã trước khi kiểm tra. Nhấp vào đây để chuyển đổi. "
Khi được nhấp, nó sẽ hiển thị cùng một XML. Tôi tắt nén nội dung động trong IIS sau đó XML có thể nhìn thấy trong fiddler ngay lập tức, nhưng FF vẫn không thể đối phó, để các quy tắc ra nén.
Tôi đã chơi xung quanh với tập lệnh một chút, có vẻ như jQuery có thể mặc định hoặc đoán một số tham số, do đó, kiểu dữ liệu, chẳng hạn, không bắt buộc. Với những cài đặt này, tôi nhận được một thông báo thành công, tuy nhiên nó vẫn không biết phải làm gì với dữ liệu. Tôi đã thử thiết lập dataType thành "jsonp" như đề xuất trong một số chuỗi SS (không thể tìm thấy nó vào lúc này, sẽ liên kết nó khi tôi làm) và lỗi thay đổi thành missing ; before statement
, tôi đoán vì nó không phải là đối tượng JSON, nhưng XML. Có cách nào để thiết lập webservice để trả về một JSON thay thế?
CHỈNH SỬA 2: Tôi đã cập nhật url
để phản ánh những gì thực sự đã xảy ra. Xin lỗi tôi đã bỏ lỡ nó, khiến mọi người không thể phát hiện ra nó.
Khi bạn nói "giải mã", ý của bạn là mã hóa JSON? – Nikki9696
bạn có thể bao gồm dữ liệu xml mà bạn nhận được từ dịch vụ web trở lại và bạn thấy trong Fiddler không? – Oleg