9

JSONP返品が.net 4.5 ASP.NET WEB APIですぐにサポートされているかどうかを知っている人はいますか?

以前のバージョンの or .net では「自作」がたくさん見つかりましMVCたが、それ以降のバージョンに固有のものはないようです。

これは、以前のバージョンが .net 4.5 スタックで動作するためである可能性があると認識していますが、誰かが既に焼き付けられているかどうか知りたいです。

4

4 に答える 4

3

これは私が見つけた最初の投稿であり、最も役に立ちましたが、それでもいくつかの質問が残っており、回答のいくつかにいくつかの問題が見つかりましたが、すべての回答のために機能させることができました。何を追加したかったのですか?検索のリターンが高いらしいので知りました。https://www.nuget.org/packages/WebApiContrib.Formatting.Jsonp
をインストールし、追加した後に動作させることができました

GlobalConfiguration.Configuration.Formatters.Insert(0,  new JsonpMediaTypeFormatter(new JsonMediaTypeFormatter()));

アプリケーション startas の Global.asax に Alex Wheat と mbudnik が答えたので、CORS はすべて実装済みの API の他の部分で動作しなくなりました。

これですべて正常に動作し、パッケージ開発者の github からいくつかのことがわかりました。

nuget パッケージをインストールした後、Global.asax ファイルに以下を追加します。

GlobalConfiguration.Configuration.AddJsonpFormatter();

次に、以下の Jquery を使用してサービスを呼び出す場合は、URL を自分の URL に置き換えるだけで、コンソールで結果を確認できます。また、トラブルシューティングに役立つため、Fiddler Web Debugger をインストールすることをお勧めします。

$.ajax({
    url: 'http://jsfiddle.net/echo/jsonp/',
   type: 'GET',
    contentType: 'text/javascript',
    crossDomain: true,
    success: function(data) {
        console.log(data);
    },
    error: function(jqXHR,status,error) {
    console.log(error);
    }
});

contentType : 'text/javascript'は重要です。これは、Jsonp Formatter を使用するよう Web API に指示するものです。

「jsonp」の dataType を含めないでください - 以下の例

     ...type: 'GET',
    dataType: 'jsonp',
    crossDomain: true,... 

これにより、Web API が JsonMediaTypeFormatter を使用し、「jQuery randomfunctionstring was not called parsererror」エラーが発生します。私は個人的な試行錯誤からこれを知っています。うまくいけば、これは他の誰かに役立ちます。

于 2015-11-03T22:01:53.770 に答える
0

また、WebApiContrib.Formating.Jsonp NuGet パッケージを使用することになりましたが、コールバック パラメーターがない場合はパディングなしで Json を返す機能を保持しています。

したがって、私が提供したコールバックパラメーターのJsonp IFのみ。

(howTo から) Global.asax.cs に追加する - Application_Start()

GlobalConfiguration.Configuration.AddJsonpFormatter();
于 2015-04-16T13:02:14.587 に答える