Я добавил веб-API в проект, который был доступен.мой контроллер API:
namespace MyApplication.Controllers
{
public class TaskApiController : ApiController
{
[HttpPost]
public IHttpActionResult Create(string UserName, string Password, string DoingDateTime, int ReferenceFrom, int ReferenceTo, string MaturityDateTime = "", int? PersonCompany_AffiliationID = null, int? SubjectID = null, string Description = "", int? ImportanceDegreeID = null, int? StatusID = null, int CompletionPercentage = 0, int? DossierID = null)
{
...
return Ok();
}
}
}
WebApiConfig.cs:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
добавить следующий код в web.config:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept,Authorization" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>
и ajax:
$.ajax({
url: 'localhost:3641/api/TaskApi',
contentType: 'application/x-www-form-urlencoded',
dataType: 'json',
data: {
UserName: 'admin',
Password: '123',
Description: 'test',
DoingDateTime: '1397/12/10',
ReferenceFrom: 2,
ReferenceTo: 2
},
type: 'Post',
success: function (data) {
alert('success');
}
, error: function (response) {
alert(response.responseText);
}
});
при тестировании веб-API в браузере с помощью:
http://localhost:3641/api/TaskApi?UserName=admin&Password=312&Description=hkj&DoingDateTime=1397/02/05&ReferenceFrom=2&ReferenceTo=2
Работает правильно.но когда aun ajax возвращает ошибку, а response.responseText возвращает "undefined".