3
function girisAjaxKontrol() {
var kullanici = { 'kullaniciAdi': $('#username').val(), 'hidden': $('#password').val() };
$.ajax({
    url: '/Giris/GirisGecerliMi',
    type: 'POST',
    data: kullanici,
    success: girisAjaxReturn,
    error: function (error, textstatus) {
        JSON.stringify(error);
        errorMessage($("div.girisSubmit input"), JSON.stringify(error), false);            
    }
});

}

この関数は以下のエラーを受け取ります(デプロイ前は機能していました)。このWebサイトは、ローカルIIS7.5上のAsp.NetMVC4Webサイトです。たくさん検索しましたが、まだ解決できませんでした。

Server Error in Application \"DEFAULT WEB SITE\"

HTTP Error 404.0 - Not Found

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Module: IIS Web Core
Notification: MapRequestHandler
Handler: StaticFile
Error Code: 0x80070002

Requested URL   http://localhost:80/Giris/GirisGecerliMi
Physical Path   C:\\inetpub\\wwwroot\\Giris\\GirisGecerliMi
Logon Method    Anonymous
Logon User  Anonymous   
4

1 に答える 1

5
url: '/Giris/GirisGecerliMi',

このようにハードコーディングしないでください。この URL を生成するには、URL ヘルパーを使用する必要があります。その理由は、IIS にアプリケーションを展開するときに、考慮する必要がある仮想ディレクトリ名があるためです。したがって、正しい URL は次のとおりです。

url: '/MyAppName/Giris/GirisGecerliMi',

しかし、あなたがしたようにURLをハードコーディングすることによって、これが機能する方法はありません. ASP.NET MVC では、特定のコントローラー アクションへの URL を生成するなど、常に URL ヘルパーを使用する必要があります。Url.Actionこれらのヘルパーは、ルーティング定義だけでなく、仮想ディレクトリ名なども考慮に入れるためです。

したがって、正しい方法は、この URL をサーバー側で生成し、引数としてgirisAjaxKontrol関数に渡すことです。

function girisAjaxKontrol(url) {
    var kullanici = { 'kullaniciAdi': $('#username').val(), 'hidden': $('#password').val() };
    $.ajax({
        url: url,
        type: 'POST',
        data: kullanici,
        success: girisAjaxReturn,
        error: function (error, textstatus) {
            JSON.stringify(error);
            errorMessage($("div.girisSubmit input"), JSON.stringify(error), false);            
        }
    });
}
于 2012-06-20T13:51:05.500 に答える