2

MVC4 で REST API を作成しました。フィドラーからのリクエストを作成すると正常に動作します。しかし、私のアプリケーションでは、jsonp を介して呼び出す必要があります。これは、クロス ドメイン リクエストになるためです。しかし、このサービスを呼び出すと、次のようなエラーが表示されます。

Jquery JsonP 呼び出し ..

$.ajax({
        type: "POST" ,
        url: "http://127.0.0.1:81/api/sites/GetDomainAvailability?apikey=asfasfdsf&callback=?",
        data: { SubDomain: subDomain, ParentDomain: parentDomain, ResellerId: resellerId },
        cache: false,
        contentType: "application/json; charset=utf-8",
        success: function (response) {
            if (callback)
                callback(response.d);
        },
        error: function (response) {
            if (callback)
                error(response.d);
        },
    });

エラー: ここに画像の説明を入力

4

1 に答える 1

2

現在、JSONP を行っていません。それはまだ POST リクエストです。JSONP にするには、呼び出しに追加dataType: "jsonp"するだけです。$.ajax()content-type や 'callback' param などの他の冗長パラメータを削除することもできます (ただし、これはオプションです)。したがって、コードは次のようになります。

$.ajax({
    url: "http://127.0.0.1:81/api/sites/GetDomainAvailability?apikey=asfasfdsf",
    data: { SubDomain: subDomain, ParentDomain: parentDomain, ResellerId: resellerId },
    datatype: "jsonp",
    cache: false,
    success: function (response) { /* ... */ },
    error: function (response) { /* ... */ },
});

また、リクエストが GET に変換され、次のようになることを確認してください。 /GetDomainAvailability?apikey=key&callback=jquery123&SubDomain=sss&ParentDomain=ppp&ResellerId=123&_=4398572349857

そのため、サーバー側のコードを準備してください。

于 2012-11-13T15:58:56.743 に答える