Почему запрос ajax без имени приложения? - PullRequest
0 голосов
/ 12 мая 2019

Это мой выпускной проект , У меня есть кое-какие знания по серверам.Но я не знаком с JS.Если я не добавлю context-path (я имею в виду имя проекта), он запустится без проблем.Но если я добавлю какой-то контекстный путь, какой-то ajax-запрос вернет 404.Я попытался отладить (изменить) некоторые js код.Но, похоже, напрасно.

Я изменил URL 'fLike' и 'fDislike', я добавил '/itnews' перед URL.

(function (window, undefined) {
    var Action = Base.createClass('main.util.Action');
    $.extend(Action, {
        like: fLike,
        dislike: fDislike,
        post: fPost
    });

    function fLike(oConf) {
        var that = this;
        that.post({
            url: '/itnews/like',
            data: {newsId: oConf.newsId},
            call: oConf.call,
            error: oConf.error,
            always: oConf.always
        });
    }

    function fDislike(oConf) {
        var that = this;
        that.post({
            url: '/itnews/dislike',
            data: {newsId: oConf.newsId},
            call: oConf.call,
            error: oConf.error,
            always: oConf.always
        });
    }

    function fPost(oConf) {
        var that = this;
        $.ajax({
            method: oConf.method || 'POST',
            url: oConf.url,
            dataType: 'json',
            data: oConf.data
        }).done(function (oResult) {
            var nCode = oResult.code;
            nCode === 0 && oConf.call && oConf.call(oResult);
            nCode !== 0 && oConf.error && oConf.error(oResult);
        }).fail(oConf.error).always(oConf.always);
    }
})(window);

Это 'application.yml'

spring:
  freemarker:
    template-loader-path: classpath:/templates/
    cache: false
    charset: UTF-8
    check-template-location: true
    content-type: text/html; charset=utf-8
    expose-request-attributes: true
    expose-session-attributes: true
    request-context-attribute: request
    datasource:
    url: jdbc:mysql://localhost:3306/news?serverTimezone=GMT&useSSL=false&allowPublicKeyRetrieval=true
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource
    server:
    servlet:
    context-path: /itnews
    port: 8080

Когда я нажимаю 'like', возвращается 404 (URL запроса: http://localhost:8080/like), У него нет имени приложения.Почему?

Я публикую некоторую фотографию об этом:

e1 e2 e404

...