Вот интересная проблема:
У меня есть несколько jQuery, которые выглядят так:
$(document).ready(function() {
$.ajax({
type: "POST",
url: "http://localhost:63056/Service1.asmx/PrintOrderRecieptXml",
data: {"CouponCode":"TESTCODE","Subtotal":14.2600,"ShippingTotal":7.5000,"TaxTotal":0.0000,"GrandTotal":21.7600,"OrderItemCollection":[{"Total":14.2600,"Qty":250}]},
dataType: "json",
contentType: "application/json",
error: function(xhr, msg) { alert(xhr.statusText); }
});});
Теперь проблема в том, что она отправляет запрос, но веб-служба обрабатывает его неправильно. В IE я получаю окно с предупреждением «Внутренняя ошибка сервера», а с FireFox я получаю окно с предупреждением, в котором ничего нет.
Странно то, что когда я использую IE, я не получаю сообщение об ошибке в своем журнале событий, но с Firefox я получаю (бонусные баллы за выяснение, почему это так):
"Сообщение об исключении: формат запроса не распознан для URL, неожиданно заканчивающегося на '/ PrintOrderRecieptXml"
Я покопался в некоторых и обнаружил, что иногда нужно добавить:
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost" />
<add name="HttpPostLocalhost"/>
</protocols>
</webServices>
На ваш Web.Config, что я и сделал, но это не помогло. Интересно, что веб-сервис прекрасно работает с SOAP или отправкой строки запроса, но не с JSON.
Есть идеи?