2016-07-06 3 views
0

Я посылаю следующий запрос Ajax для mypage.jspJSP - Доступ Jquery Ajax Data

jQuery.ajax({ 
     type: "POST", 
     url: "../mypage.jsp", 
     data: { 
      param1: 'aaa', 
      param2: 'bbb' 
     }, 
     contentType: "text/html; charset=utf-8", 
     dataType: "text", 
     success: function (data) { 
      alert("Data Loaded: " + data);  
     } 
    }); 

В моей mypage.jsp странице, я пытаюсь получить доступ к param1, как показано ниже.

String result = request.getParameter("param1"); 

но result становится null.

Однако, когда я изменяю свой запрос ajax, как показано ниже, я получаю 'aaa' в качестве результата (который является желаемым результатом).

jQuery.ajax({ 
     type: "POST", 
     url: "../mypage.jsp?param1=aaa&param2=bbb", 
     data: {}, 
     contentType: "text/html; charset=utf-8", 
     dataType: "text", 
     success: function (data) { 
      alert("Data Loaded: " + data);  
     } 
    }); 

Я использую правильный метод доступа к данным, отправляемым по запросу Ajax?

я упомянул некоторые документы на неявной запрос (HTTPServletRequest) объект, но не мог придумать любой другой подходящий метод для получения доступа к другим, чем 'request.getParameter()'

данных Как получить доступ к param1, не отправляя его в URL запроса Ajax?

Примечание: Я также столкнулся с очень похожим вопросом SO 'How to receive data sent by Ajax in a .jsp file', но он не использует поле «данные», как я, поэтому думал задать этот вопрос.

+0

попробуйте его с именем параметра ''param1': 'aaa'' или создайте объект js для хранения данных объектом, а затем вызовите' JSON.strigify (obj) 'на объект. – ghg565

+0

Я бы тоже изменил его на '$ .ajax()'. – ghg565

ответ

0

Следующие работали для меня, хотя я не уверен, что это и запрос в вопросе эквивалентны. Однако, таким образом, я был в состоянии успешно считывать параметры:

new Ajax.Request('../mypage.jsp', { 
    method: 'POST', 
    asynchronous: false, 
    parameters: { 
     param1: 'aaa', 
     param2: 'bbb' 
    }, 
    onSuccess: function (data) { 
     alert("Data Loaded: " + data.responseText.trim()); 
    } 
}) 

Обратите внимание, что я должен был изменить onSuccess функцию (data.responseText.trim()), при чтении data, потому что здесь data является объектом.