3

要求の種類に応じて、JSON または XML オブジェクトのいずれかを受け入れる MVC アプリケーションがあります。このアプリケーションは、この記事に基づいています

複雑なオブジェクトを必要とする MVC アプリケーションでメソッドを呼び出すには、次の Javascript (JQuery) を使用します。

function GetUnassignedJob() {
if (isInteger($('#txtDay').val()) && isInteger($('#txtMonth').val()) && isInteger($('#txtYear').val()) && isInteger(intCurrentJobSummaryIndex) && intCurrentJobSummaryIndex > -1) {
    $.ajax({
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        url: 'http://server/api/wip/joboptimise/getlistforids/' + $('#txtYear').val() + '/' + $('#txtMonth').val() + '/' + $('#txtDay').val(),
        data: $.toJSON(aJobSummary[intCurrentJobSummaryIndex].JobIds),
        dataType: 'json',
        cache: false,
        beforeSend: function(XMLHttpRequest) { ShowLoading(); },
        success: function(data, textStatus) {
            try {
                ClearUnassignedJobs();
                AddUnassignedJobs(data);
            }
            catch (e) {
                alert('GetUnassignedJob():\r\n\r\n' + e.message);
                HideLoading();
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            HideLoading();
            ShowStatus('unable to retrieve job list');
        },
        complete: function(XMLHttpRequest, textStatus) {
            HideLoading();
        }
    });
}
else {
    ShowStatus('please ensure you have entered numeric values for day, month and year');
}

}

サーバーにデプロイされ、ネットワーク上の任意のクライアントからアクセスされると、すべて正常に動作します。ただし、サーバーから同じようにしようとすると、次のエラー メッセージが表示されます。

ページの場所: /api/wip/joboptimise/getlistforids/2010/3/10

メッセージ: 名前空間 '' からの要素 'root' が必要です.. 名前 ''、名前空間 '' の 'None' が見つかりました。

ソース: System.ServiceModel.Web

メソッド: System.Object InternalReadObject(System.Runtime.Serialization.XmlReaderDelegator, Boolean)

スタック トレース: System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalReadObject(XmlReaderDelegator xmlReader, ブール値の verifyObjectName) で System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator リーダー、ブール値の verifyObjectName) で System.Runtime.Serialization.Json.DataContractJsonSerializer. System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(ストリーム ストリーム) での ReadObject(XmlDictionaryReader リーダー) rbm.api.ObjectFilter.ProcessJson(ActionExecutingContext filterContext) で

さらに調査すると、HttpContext の InputStream プロパティが空であることがわかります。見知らぬ人ですが、TcpTrace のようなアプリケーションを使用すると (HTTP トラフィックを確認できるように)、すべてが機能します!

どんな援助でも大歓迎です、

マーク

4

1 に答える 1

0

ローカルホストを使用して、以前のコメントは正しいです。サーバーの windows\system32\drivers\etc にあるホスト ファイルを編集し、ローカル ホストを URL にマップするエントリを追加できます。

 127.0.0.1 www.xyz.com 
于 2011-11-07T19:04:02.863 に答える