0

アプリケーションUIJQueryASP.NETMVC4プロジェクトからのweb.apiメソッドのアドレス指定に問題があります。

アプリケーションとweb.apiは異なるプロジェクトに分割されます。これはアーキテクチャ上の制約であり、変更できないため、2つを1つのプロジェクトにまとめて答えないでください。

プロジェクトを実行すると、ソリューションのweb.apiプロジェクトが1つのポートで実行され、アプリケーションが別のポートで実行されます。

web.apiアクションメソッドへのajax呼び出し内で、UIのポートがweb.apiのuriに配置されるため、web.apiアクションメソッドが呼び出されることはありません。

正しいURIが生成されていることを確認するにはどうすればよいですか?

したがって、UIのJQueryは次のようになります。

        $.ajax({
            "dataType": 'json',
            "type": "GET",
            "url": "api/products",
            "success": function (data) {
                $.each(data, function(i, item) {
                    var str = '<li>Product Id: ' + item.Id + ' Stock Code: ' + item.StockCode + '</li>';
                    $('#productId').append(str);
                });
            },
            "error": function (data) {
                $.each(data, function(i, item) {
                    var str = '<li>Product Id: ' + data[i].Id + ' Stock Code: ' + data[i].StockCode + '</li>';
                    $('#productId').append(str);
                });
            }
        });

要求されているURIは次のようになります。

http://localhost:50481/api/products

ただし、web.apiは別のポートでホストされています。

4

1 に答える 1

0

その答えは Cross Origin Resource Sharing にあるようです。

https://developers.google.com/api-client-library/javascript/features/cors

于 2013-03-19T15:37:56.697 に答える