У меня есть следующий сервис asmx
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class DinnerService : System.Web.Services.WebService
{
List<Dinner> dinners;
public DinnerService()
{
dinners = new List<Dinner>();
}
[WebMethod]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public Dinner HelloWorld()
{
var dinner = new Dinner { DinnerID = 1, Host = "Ahsan", RSVP = "Some People", Venue = "Lahore" };
return dinner;
}
}
и я вызываю его из jQuery для события загрузки страницы веб-формы следующим образом
$(function () {
$.ajax({
type: 'post',
url: 'http://localhost:1901/DinnerService.asmx/HelloWorld',
dataType: 'json',
data:{},
contentType: "application/json; charset=utf-8",
success: function (data) {
$('#res').html(data.d.DinnerID);
alert(data.d.Host);
}
});
});
Он отлично работает в IE, но в Firefox и Chrome показывает внутреннюю ошибку сервера, а ответ выглядит так:
Request format is unrecognized for URL unexpectedly ending in '/HelloWorld'
Это очень странно для меня, почему он работает на одном браузере, а не на других. Я использую Visual Studio 2010 и .NET 3.5 для службы. Переход к WCF для этого конкретного случая не вариант. Ответ в Интернете не мог помочь мне решить проблему. Что именно здесь происходит?