このGETリクエストがあると、機能します(リクエストをサーバーに送信し、サーバーはそれを処理できます):
/* post to server*/
$http.get("/forms/FormValidator1/validateForm/" + JSON.stringify(data)).
success(function(data) {
console.log("good")
}).
error(function(data, status, headers, config) {
console.log("something wrong")
})
この POST リクエストを使用すると、そうではありません。
$http.post("/forms/FormValidator1/validateForm/" + JSON.stringify(data)).
success(function(data) {
console.log("good")
}).
error(function(data, status, headers, config) {
console.log("something wrong")
})
または別の形式で書く:
$http({
url: '/forms/FormValidator1/validateForm',
method: "POST",
data: JSON.stringify(data),
headers: {'Content-Type': 'application/json'}
}).success(function (data, status, headers, config) {
console.log("good")
}).error(function (data, status, headers, config) {
console.log("something wrong")
});
私が最後に持っているものは次のとおりです。
Request URL:http://localhost:9000/forms/FormValidator1/validateForm
Request Method:POST
Status Code:404 Not Found
要求されたペイロードは json です:{"name":"name1","surname":"surname1"}
サーバー (playframework) で、クライアント呼び出しを受け入れることになっているルートを定義しました。
GET /forms/FormValidator1/validateForm/:jsonForm controllers.FormValidator1.validateForm(jsonForm:String)
POST /forms/FormValidator1/validateForm/:jsonForm controllers.FormValidator1.validateForm(jsonForm:String)
またはなし":jsonForm"
POST /forms/FormValidator1/validateForm controllers.FormValidator1.validateForm(jsonForm:String)
その理由は何でしょう。私が逃したものは何ですか?
アップデート
興味深いことに、ラップトップで動作するようになった後 (以下の回答を参照)、gitHub にプッシュして別のマシンにプルすると、動作が異なります。Bad Request is [Invalid XML]と不平を言うようになりまし"application/json"
たが、ヘッダーを使用し、コミット後にコード行を変更しませんでした。バグなのかな。
に沿っているようです。DocumentType
提供する必要がありますdataType : 'json'
が、Play はそれを URL に含める必要があるためです。これはすべて機能しません。