2017-10-04 4 views
2

AJAX要求を呼び出した後にこのエラーが発生しています。 コントロールがサーバー側に突き当たり、すべてのプロセスが正常に動作しています。しかし、コントローラコードを呼び出す前に、このエラーが発生し、ここに固執しました。AJAXコールからのGETまたはPOST要求が処理されていません。

JSPの

<form id="pop-up3reset"> 
.................. 
<input type="submit" value="Send" id="manualModePopupSave" /> 

Ajaxのコール

$(document).ready(function() { 
$('#manualModePopupSave').click(function() { 
var userno=$('#userno').val(); 
var on_off1 = $('#pop-up3onoff1').is(':checked') ? 1 : 0; 
var search = { 
"user_no" : userno, 
"onoff1" : on_off1 
}; 

var myJsonStringsearch = JSON.stringify(search); 
alert(myJsonStringsearch); 
$.ajax({ 
type : "POST", 
url : "setManualModeForAjax", 
contentType : "application/json", 
async : true, 
cache : false, 
data : myJsonStringsearch, 
dataType : 'json', 
success : function(response) { 
    $('#onoff1').val(response.onoff1); 
if(response.errorMessage == "-1"){ 
    sweetAlert("not in communication", "","error"); 
}else if(response.errorMessage == "M,1"){ 
    sweetAlert("Request is Not Reachable", "","error"); 
} 
}, 
}); 
}); 
}); 

コントローラ

@RequestMapping(value = {"/setManualModeForAjax"}, method = RequestMethod.POST, produces = "application/json") 
public @ResponseBody ManualModeFromAjax setManualMode(@RequestBody ManualModeFromAjax manualModeFromAjax)throws Exception 
{ 
    System.out.println("In manual mode for AJAX request"); 
    .................... 
    return manualModeFromAjax; 
} 

org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported WARNING:リクエストメソッド 'POST' サポートされていません org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported WARNING:リクエスト方法はありません 'GET' http://localhost:8080/PROJECT/login:ネットワーク

リクエストURL

をサポート?

リクエスト方法:

リモートアドレスを許可されていません405方法:

ステータスコードを取得[:: 1]:8080

これが原因で、あなたのボタンである

+0

これはおそらくあなたを助けます:https:// stackoverflo w.com/questions/15699350/spring-request-method-post-not-supported –

+0

私はそれを試してきました。私の問題はAjaxコールのみです。ネットワーク内の – Hema

+0

は「GET」と言いますか? –

答えて

2

を助けてくださいbuttonでなく、submitです。そのため、ボタンをクリックすると、アクションにバインドされたjavascriptメソッドが実行されますが、デフォルトのアクションが妨げられていないので、フォームもx-www-form-urlencodedとして送信され、コントローラはただちにform-urlencodedリクエスト要求メソッドがサポートされていないエラーを受け取ったときです。

異なるオプションがあります。あなたは可能性:

  • 代わりsubmit
  • 使用のあなたのボタンのタイプとして使用buttonEvent.preventDefault
  • ちょうどあなたのjavascriptのメソッドにfalseを返す

あなたはjavascriptのようなものでなければなりません:

$('#manualModePopupSave').click(function(e) { 
    //Use this... 
    e.preventDefault(); 

    var userno=$('#userno').val(); 

    .... 

    //or this. 
    return false; 
}); 
+0

ありがとうたくさん..これは動きました..しかし、yはデフォルトのGET要求.. thtをするでしょうか? – Hema

+0

フォームタグもajax呼び出しも、メソッドプロパティの値を定義していません。どちらの場合も、デフォルトのものはGETです。 https://www.w3.org/TR/html401/interact/forms.html#h-17.3 http://api.jquery.com/jquery.ajax/ ajax呼び出しではなく、メソッドを使用する必要があります。 – alfcope

+0

よろしくお願いします。 – Hema

関連する問題