JQuery.ajax ошибка 400 неверный запрос со Struts - PullRequest
0 голосов
/ 25 января 2019

У меня есть веб-сайт, созданный с использованием Struts1, Java и JSP, и мне нужно динамически получать данные из веб-службы.Я вызываю метод java с использованием AJAX в моем JSP, но получаю ошибку 400: неверный запрос, что бы я ни пытался.Итак, вот моя функция Javascript в моем JSP:

var panierSansFares=new Array();

function myFunction(){

        $.ajax({
            url: "myPath/getFares.do?method=doGet",
            type: 'GET',
            dataType: 'json',
            contentType: "application/json; charset=utf-8", // this
            data: 'panierSansFares='+JSON.stringify(panierSansFares),
            success: function(res) {
                alert(res);
            }
        });
  }

Обратите внимание, что panierSansFares в массиве объектов, и он не пуст при вызове функции.И в моих STRUTS, действие:

<action path="/getFares" 
            type="myPath.GetFaresServlet"
            scope="request" >
        </action>

И, наконец, мой код Java:

public class GetFaresServlet  extends Action {
   private static final long serialVersionUID = 1L;

   protected void doGet(HttpServletRequest request, HttpServletResponse response, ActionMapping actionMapping) throws IOException {
                  /**Some stuff**/

   }
}

Моя ошибка 400 исходит из Struts, потому что я вижу "Неверный путь былзапрошенная "ошибка в инструментах разработчика Chrome (вкладка" сеть ").

Я пытался обойти Struts и просто вызывал свой java напрямую как сервлет, но я не смог этого сделать, я получил ошибку 404.

Я никогда раньше не использовал ajax со Struts, поэтому мне не хватает знаний, чтобы найти причину проблемы.

Спасибо

1 Ответ

0 голосов
/ 25 января 2019

Я не понял вашей проблемы, но я следую этому коду для вызова API

function APICall(url, methodType, data) {
    var d = $.Deferred();
    methodType = methodType || "GET";
    data = data || null;
    $.ajax({
        url: url,
        async: true,
        method: methodType,
        data: data,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response, status, request) {
            d.resolve(response, status, request);
        },
        error: function (error) {
            d.resolve(error.responseJSON);
        }
    });
    return d.promise();
}
APICall(url, methodType, data).done(function (response, status, request) {
    d.resolve(response, status, request);
}).fail(function (response) {
    d.resolve(response, status, request);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...