Entity Framework を使用する .Net Webapi を開発しましたが、URI を使用してすべてが正しく機能しています... //mywebserver/webappfolder/api/mycontroller?val=1&val=2&val=3
EF と API は同じプロジェクトにあります。
この時点ではカスタム クライアント アプリケーションは必要ないため、この URI をローカル PC ブラウザーに入力すると、期待どおりに JSON または XML の結果が得られます。そのため、開発ボックスで WebAPI を使用するクライアントの作成を開始し、「//mydeveloperserver/...」で実行できると想定しました。
$(document).ready(function () {
$('#button').click(function () {
alert('Hello. This works');
$.get('http://mywebserver/webappfolder/api/mycontroller', function (data) {
$.each(data, function (n, val) {
$('#OutputDiv').add(n + ':Dedication ' + val.DedicationName);
});
});
});
});
JQuery/AJAX は、Fiddler を使用してリクエストが正常に行われ、返されたことを確認できたにもかかわらず、コールバック関数の結果を埋めることができませんでした。
ドキュメントを掘り下げた後、クライアントを使用するアプリはWebAPI と同じWeb サーバー "//mywebserver/..." で実行する必要があり、JQuery/AJAX クライアント Web アプリが "mywebserver" に移動されると、コールバック関数がJSON の結果は期待どおりです。上記のコードが機能するようになりました
他のサーバーには Web サイト アプリがあり、セキュリティを損なうことなく WebAPI を呼び出してそのデータを使用するために使用したい .Net Windows フォーム アプリがあります。実稼働サーバーで実行されている WebAPI を開発者ボックス Web アプリケーションから呼び出すにはどうすればよいですか。別の場所からそのデータを使用できるようにするには、WebAPI サーバーに別のコード レイヤーが必要ですか?