向Web Api控制器进行jquery ajax调用时出现问题。该网站同时具有MVC和Web API控制器。当我使用IIS Express时,它可以正常工作,但是一旦切换到本地IIS,我就会收到404错误。这是Ajax代码
$.ajax({
url: '/api/Application/',
method: 'GET',
datatype: 'json',
contentType: 'application/json',
data: { applicationId: applicationId },
success: function (data) {
// alert('Save successful');
applicationStatus = data;
},
fail: function () {
alert('Get Application Status Failed');
},
complete: function () {
deferred.resolve(applicationStatus);
}
});
这是Web API控制器代码:
[HttpGet]
[Route( "API/Application" )]
public CAApplicationStatus GetApplicationStatus( string applicationId)
{
...
return CAApplicationStatus;
}
在IIS Express下,URL为/API/Application?applicationId=628
,并且可以解决。我没有得到404并且代码执行。如果我在IIS Local下运行,我将获得相同的URL,但会收到404错误。尝试在Fiddler中使用URL时,出现相同的404错误。如果我将网站名称添加到URL中,即/CommunityAssociation/API/Application?applicationId=628
,则返回数据。
如何将网站名称作为Ajax调用的一部分,以便它同时适用于IIS Express和IIS Local?
顺便说一句,如果我将ajax调用更改为/CommunityAssociation/API/Application?applicationId=628
,则生成的URL为
/CommunityAssociation/GeneralInformation/Edit/CommunityAssociation?applicationId=628
。
/CommunityAssociation/GeneralInformation/Edit
是在进行API调用之前被调用的MVC控制器的名称。