0

異なるバージョンの .NET がインストールされた 2 つのサーバーがあります。サーバー 1 には .NET 1.1 があり、サーバー 2 には .NET 3.5 があります。

.NET 3.5 サーバー上に Web サービスがあり、以下が正常に機能します。

function selectedDateTime(strDate, strHours, strMinutes) {

    $.ajax({
        url: 'webservice.asmx/GetCount',
        type: 'POST',
        data: '{strMeetingDate: "' + strDate + ' ' + strHours + ':' + strMinutes + ':00"}',
        contentType: 'application/json; charset=utf-8',
        dataType: 'jsonp',
        success: function(department) {
            console.log("success: " + department.d); 
        },
        error: function(xhr, status, error) {
            console.log("status message: " + status);
            console.log("error message: " + error);
            console.log("xhr message: " + xhr.responseText);

        }
    });

}

$("#btnTest").click(function(event) {
    selectedDateTime("01/07/2013", "13", "00");
});

古い .NET 1.1 サーバーでも同じスクリプトを使用したいのですが、.NET 3.5 を使用して記述されているため、Web サービスを古いサーバーに移動することはできません。

したがって、上記の html/javascript を古いサーバーに移動し、新しいサーバー上の Web サービスを指すように指示する必要があると考えました。

上記のスクリプトを少し変更して、新しいサーバーを指すようにしました。

url: 'http://server2/webservice.asmx/GetCount',

次のメッセージが表示されました。

http://server2/webservice.asmx/GetDayCount 401 (Unauthorized) 
http://server2/webservice.asmx/GetDayCount Origin http://server1 is not allowed by Access-Control-Allow-Origin. 
XMLHttpRequest cannot load http://server2/webservice.asmx/GetDayCount. Origin http://intranet is not allowed by Access-Control-Allow-Origin. 

jsonp がクロスドメインを許可すると思うので、jsonビットをに変更して、上記のスクリプトを少し変更しましたか?jsonp

dataType: 'jsonp',

しかし、それでも問題は解決しませんでした。現在、次のようになっています。

GET http://server2/webservice.asmx/GetCount?callback=jQuery…2680346152&{strMeetingDate:%20%2201/07/2013%2013:00:00%22}&_=1372680346153 500 (Internal Server Error) 

両方のファイルが同じサーバー上にあるときに、Web サービスとスクリプトが新しいサーバー上で明らかに機能したため、これが機能しない理由は誰でも知っています。

4

1 に答える 1