Хорошо, поэтому я создал тестовый проект просто для проверки того, что jQuery AJAX работает со службой asp.net, и с этим нет проблем. Я использовал сервис HelloWorld по умолчанию, созданный в VS studio. Я звоню в сервис через jQuery так:
в Default.aspx:
<script language="javascript" type="text/javascript">
$(document).ready(function() {
//test web service
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "TestService.asmx/HelloWorld",
data: "{}",
dataType: "json",
success: function(msg) { alert(msg);},
error: function (XMLHttpRequest, textStatus, errorThrown) {
debugger;
}
});
});
</script>
в TestService.asmx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace WebServiceTestWitJQuery
{
/// <summary>
/// Summary description for TestService
/// </summary>
[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 TestService : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
}
Затем я продолжил и скопировал все точно так же, как в моем проекте, и это не работает. Я получаю 500 ошибок сервера.
Я подтвердил следующее:
- web.configs идентичные
- страниц идентичных
- идентичный класс обслуживания
- JQuery AJAX вызов идентичный
- Я могу перейти к http://localhost:3272/TestService.asmx?op=HelloWorld, и веб-сервис работает нормально.
Что еще?