2017-07-19 9 views
1

私はRESTサービスを呼び出すためにajaxリクエストを使用しています。 REST URLからパラメータを渡すと、RESTサービスからの応答が得られますが、データオブジェクトを介してパラメータを送信すると応答が得られません。私は間違って何かしていますか?上記のリクエストでAJAXがJqueryでRESTサービスをリクエストしました。パラメータはURL経由で送信され、データオブジェクトでは送信されませんでした。

$.ajax({ 
    type: "POST", 
    url: "myURL?ID=5087&name=hello", 
    data:{ 
     'id':'5087', 
     'name':'hello', 

    }, 
    success: function(msg){ 
     alert('wow' + msg); 
    } 

}); 

私はURLからパラメータを削除し、そのままデータオブジェクトを保持し、私はあなたが間違って何もしていない任意の応答

+0

''名前':hello'は存在しない変数' hello'を探しています。文字列を引用する必要があります。それを超えて、私たちはapiがどのように動作するかについて十分に分かりません – charlietfl

+0

これは間違いでした。これは今編集されました –

答えて

0

が届かない場合は、問題がありますAPIがセマンティックルールに従っていないことを示します。

POST要求を受信した場合、データはURL内にある可能性のある識別子を除き、要求の本体を通して送信されます。このため、type: 'POST'と指定してオブジェクトをdataに指定すると、そこからjQueryが送信する情報が格納されます。

しかし、あなたが呼び出しているAPIは、POST要求で送信したデータをURL経由で取得しています(実際にはGETリクエストを使用する必要があります)。

このため、実際の例のように、application/x-www-form-urlencoded形式のURLに手動でデータを追加する必要があります。

+0

その投稿がjson contentTypeを期待している可能性もあります – charlietfl

+0

可能ですが、どちらの方法でもクエリ文字列から値を読み取らないようにするため、 'myURL?ID = 5087&name = hello'へのリクエストは失敗します –

+1

'type: 'post''をセットし、' data'を使用します。jQueryはクエリーストリングではなくリクエスト本体に値を入れます。 –

関連する問題