2017-01-19 6 views
0

Spring Forms + JSTL + Spring MVCからAngularJS + Spring MVCにログインボタンをクリックしたときにユーザーが存在するかどうかを確認しようとしていますが、

Failed to load resource: the server responded with a status of 415 (Tipo de Medio No Soportado)

私はAngularJSとSpringを使いこなすので、素敵です。

これは私のJavaのコントローラーです:

@Controller 
@SessionAttributes("empleado") 
public class LoginController { 

    @Autowired 
    private IServiceEmpleado serviceEmpleado; 

    @RequestMapping(value="/login/check", method = RequestMethod.POST,consumes = {"application/json;charset=UTF-8"}, produces={"application/json;charset=UTF-8"}) 
    public @ResponseBody void login(@RequestBody LoginDTO login, HttpSession session) throws ServicioException{ 


    Empleado empleado = serviceEmpleado.correctLogin(login.getDni(), login.getPassword()); 

    session.setAttribute("empleado", 

    empleado); 

    } 
} 

これは私のAngularJSコントローラです:

angular.module('electronicaDonPepe') 
    .controller('LoginController', ['$scope', '$http', '$state', '$stateParams', 
     function($scope, $http, $state, $stateParams) { 

     $scope.login = function(){ 
      var param = { 
        dni: $scope.usuario.dni, 
        contrasenia: $scope.usuario.contrasenia 
      }; 

      $http.post('http://localhost:8585/electronicaDonPepe/login/check', param).then(function(){ 
       $state.go('login'); 
      }); 
     }; 
    }]); 

は最後に、これは誤りです:

Request URL:http://localhost:8585/electronicaDonPepe/login/check 
Request Method:POST 
Status Code:415 Tipo de Medio No Soportado 
Remote Address:[::1]:8585 
Response Headers 
view source 
Cache-Control:no-cache 
Cache-Control:no-store 
Content-Language:es 
Content-Length:1120 
Content-Type:text/html;charset=utf-8 
Date:Thu, 19 Jan 2017 13:44:02 GMT 
Expires:Thu, 01 Jan 1970 00:00:00 GMT 
Pragma:no-cache 
Server:Apache-Coyote/1.1 
Request Headers 
view source 
Accept:application/json, text/plain, */* 
Accept-Encoding:gzip, deflate, br 
Accept-Language:es-ES,es;q=0.8 
Connection:keep-alive 
Content-Length:43 
Content-Type:application/json;charset=UTF-8 
Cookie:JSESSIONID=4E1E018490CC15F29FBE205132C2CACD; __ngDebug=true 
Host:localhost:8585 
Origin:http://localhost:8585 
Referer:http://localhost:8585/electronicaDonPepe/ 
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 
Request Payload 
view source 
{dni: "34631248", contrasenia: "34631248"} 
contrasenia 
: 
"34631248" 
dni 
: 
"34631248" 

そして、いくつかのAngularJS Batarangのヒント:

Module "ui.router.util" was created but never loaded. 
Module "ui.router.router" was created but never loaded. 
Module "ui.router.state" was created but never loaded. 
Module "ui.router" was created but never loaded. 
Module "ui.router.compat" was created but never loaded. 
Module "electronicaDonPepe" was created but never loaded. 

私は研究をしましたが、読んだ各例では非常に特殊なケースのようです。前もって感謝します。

+0

を設定するようにしてください、あなたは 'Content-Typeの設定しようとしました:アプリケーション/ json'を? – Dinesh

+0

いいえ、私は試してみましょう、私はあなたに知らせるでしょう。メタタグの意味ですか? –

+0

はい。要求ヘッダーに設定します。あなたが 'application/json'を受け入れ、' text/html'を送って – Dinesh

答えて

1
{dni: "34631248", contrasenia: "34631248"} 

ここはあなたのエラーです。無効なJSON形式の型を渡しています。任意のフォーマッタをオンラインで使用しようとすると、それはあなたとエラーを与えることがわかります。

{"dni": "34631248", "contrasenia": "34631248"} 

これは、Jsonフォーマットタイプの正しい方法です。それがあなたを助けることを願っています今、2人は弦を渡しています。

var param = { 
        "dni": $scope.usuario.dni, 
        "contrasenia": $scope.usuario.contrasenia 
      }; 

次にこれを試してください。

+0

こんにちは、私はこの提案に疑念を抱いていましたが、とにかく試しました。それは私がコントローラメソッドを呼び出すときにも私に同じエラーを与えます。私が使用したフォーマット・タイプをどこから取ったかの例が分かり、適切に機能しました。今私は疑問を持っています...あなたはJson Format Typeの正しい方法を検証できるいくつかの文書を持っていますか?私はangularJSのドキュメントでそれを見つけることができません。 –

+0

'ビューソース {DNI: "34631248"、contrasenia: "34631248"} contrasenia: "34631248" DNI: "34631248" が'これは私のための主要な誤差です。あなたが渡そうとしている書式が正しいタイプではないからです。[私の答えで編集したこのチュートリアルをチェックする](https://geekytheory.com/json-i-que-es-y-para-que-sirve-json/) – Gatusko

+0

ああ、私は今それを得る...あなたChrome DevToolsから取得したエラーを読み込んでいます...実際のコードではありません。私のコードは 'var param = { dni:$ scope.usuario.dni、 contrasenia:$ scope.usuario.contrasenia }です;' _AngularJS_ –

0

はリクエストヘッダに

$http.post('http://localhost:8585/electronicaDonPepe/login/check', param,{ 
    headers: { 
     'Content-Type': 'application/json' 
    } 
}).then(function(){ 
    $state.go('login'); 
}); 
+0

私はこれを試してみましたが、私には同じエラーが出ます。助言がありますか ?おそらく私はどのようなことが起こっているかを見るためにデバッグモードに入ることができますか? –

関連する問題