1

現在、私のソリューションには 2 つの Web ロールがあります。1 つはメインの Web アプリ用で、もう 1 つは Web アプリとモバイル アプリケーションの両方の API として機能したいと考えています。

どちらも互いに独立して動作しますが、Web アプリの役割のビューから API の役割の API コントローラーにデータを投稿するのに苦労しています。

これは、API コントローラーのメソッドです。

public void Post([FromBody]string value)
{
    var post = (Post)JsonConvert.DeserializeObject(value, typeof(Post));
    AddPost(post);
}

そして、ここに投稿しようとしているビューの JavaScript があります。

<script>
    $(function () {
        var onPost = function () {
            $.post("http://localhost:8081/api/Post",
                {
                    "value": $('#postForm').serialize()
                }
            ).success(function () {
                alert("SUCCESS");
            }).fail(function () {
                alert("FAILURE");
            });
        };
    });
</script>

編集:

エラーは発生せず、アラート関数も呼び出されていません。ただし、このイベントを発生させるボタンをクリックすると、シリアル化されたフォームのエントリを含むように URL が変更されます。

4

1 に答える 1

0

Web アプリで MVC コントローラーなどのサーバー側から API 呼び出しを行うことをお勧めします。セキュリティ キーなど、他人に公開したくないものを含めることができます。別のサブドメインまたは URL に対して JavaScript から直接 API 呼び出しを行うと、クロスドメイン ajax リクエストが作成されます。

JavaScript で、Web アプリのコントローラー アクションに ajax 呼び出しを行います。Web アプリは、通信しているサービスを呼び出します。

POSt/GET/PUt/DELETE リクエストを使用して、フィドラーから API をテストすることもできます。

JavaScript から直接呼び出し、異なるサブドメインで Web ロールをホストする場合は、CORS リクエストを作成する必要があります: http://www.html5rocks.com/en/tutorials/cors/。この関連する質問を見ることもできます: Azure で MVC プロジェクトと一緒に WebApi を実行する

于 2013-08-28T11:16:01.150 に答える