0

以下のコードでクロスドメインヒットを作成します

 $.ajax({ url: "http://localhost:4417/TravelMirchiB2C/Microsite.asmx/SaveFromMicrosite",
    data: { x: JSON.stringify(data) },
    contentType: "application/json; charset=utf-8",
        dataType: "jsonp",
        success: function(json) {
        if (json.d="true")
            alert("Saved Successfully");
        },
        error: function() {
            alert("Hit error fn!");
        }
    });

サーバー側では、メソッドが記述されているasp.netハンドラー(.ashx)ページと.csページを使用します(呼び出す必要がある人).しかし、ブラウザーから文字列を渡すと正常に動作しますが、jsonを渡すと失敗しました型データ

public string SaveFromMicrosite(PackageQueries x)--------それはしません

public string SaveFromMicrosite(string x)---------------それは動作します

PackageQueries はクラスです

4

1 に答える 1

0

この方法を機能させるには:

public string SaveFromMicrosite(PackageQueries x)
{
    ...
}

データ全体を JSON として POST する必要があります。

$.ajax({
    ...
    data: JSON.stringify({ x: data }),
    ...
});

それ以外の場合は、値が JSON になる1 つのキーを持つ形式jQuery.ajaxにデータをエンコードし、ASP.NET はそれを自動的に決定しません。application/x-www-form-urlencodedx

于 2012-10-25T06:41:46.400 に答える