私はMVC4(私はRCバージョンを使用しています)と新しいWebApiでJSONPを使用する方法を詳しく説明しているいくつかの記事を読みました。クロスドメインリクエストを実行しようとしています。何が間違っているのかわかりません。私のコントローラーはMVC4のApiControllerクラスから継承しています。RickStrahlの実装と他のいくつかを試しました。これが私の例の方法です:
public string StartTracking(string apiKey, DomainTracking domainTracking)
{
var user = _userService.GetByApiKey(apiKey);
if(user != null)
{
var domain = user.Domains.FirstOrDefault(d => d.Name.ToLower() == domainTracking.Domain.Name.ToLower());
if(domain != null)
{
domainTracking.DomainId = domain.Id;
domainTracking.Domain = domain;
domainTracking.CreatedById = user.Id;
domainTracking.ModifiedById = user.Id;
var newDomainTracking = _domainTrackingService.Create(domainTracking);
return newDomainTracking.Id.ToString();
}
}
else
{
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
}
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
}
これが私のJqueryリクエストコードです:
function getSessionKey() {
var Domain = { 'Name': domainName };
var DomainTracking = { 'Domain': Domain, 'FormElements': getFormElements(), 'ClientLocation': clientLocation };
$.ajax({
url: 'http://api.testdomain.com:4646/api/' + apiKey,
type: 'GET',
cache: false,
timeout: 100000,
data: DomainTracking,
dataType: "jsonp",
error: function (xhr, status, error) {
},
success: function (data) {
sessionKey = data;
}
});
}
メソッド名をGetStartTrackingに変更すると、500エラーが発生します。StartTrackingという名前を残すと、405notallowedエラーが発生します。私は何をする必要がありますか?