-1

ビュー ページから Wep Api MVC 4 にデータを投稿できません。My Application と Web Api はどちらも別のプロジェクトです。

以下は私のjquery ajax呼び出しです:

   $.ajax({
        url: 'http://localhost/api/Contacts',
        type: 'POST',
        value: 'newcontact',
        dataType: 'jsonp',
        success: function (result) {
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            debugger;
            alert(errorThrown);
        }
    });

jquery呼び出しからコントローラーメソッドの下にデータを投稿したい

       // POST api/contacts
    public void Post([FromBody]string value)
    {

    }

どちらも異なるプロジェクトであるため、ビューページにデータを保存し、コントローラーメソッドでそれらを取得するためにモデルを使用していません。さらに、私の MVC プロジェクトの単純な html ページです。どこで間違いを犯したのか、ページから Web Api MVC 4 にデータを投稿する方法を教えてください。

4

3 に答える 3

1

Web API と Web APPLCATION が同じサイトにない場合、Web ブラウザは「クロス ドメイン Ajax」を許可しないため、JQuery は Ajax 呼び出しを許可しません。

Ajax を使用する場合、すべてのリクエストは同じサイトで実行する必要があります。(同じドメインとポート)

于 2013-08-09T10:23:14.107 に答える
0

パラメータを使用する必要がありdataます:

$.ajax({
        url: 'http://localhost:50043/api/Contacts',
        type: 'POST',
        data:
        {
            value: 'newcontact'
        },
        dataType: 'jsonp',
        success: function (result) {
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            debugger;
            alert(errorThrown);
        }
    });

また、ajax リクエスト タイプが であるため、アクションに属性をPOST追加する必要があります。[HttpPost]

[HttpPost]
public void Post(string value)
{

}

編集

エラーメッセージを取得するには、これを使用してください:

error: function (xhr, textStatus, errorThrown) {
        alert(xhr.responseText);
    }
于 2013-08-09T09:30:59.763 に答える
0

data次のように、パラメーターに変数を渡す必要があります。

$.ajax({
    url: 'http://localhost:50043/api/Contacts',
    type: 'POST',
    data: { 'value': 'newcontact' }, // parameters to pass go in to this object
    dataType: 'jsonp',
    success: function (result) {
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        debugger;
        alert(errorThrown);
    }
});

URL が正しいと仮定すると、上記は機能します。

于 2013-08-09T09:32:01.587 に答える