AngularJS и SparkJava. Никогда не входите в метод .success () и не видите ответ сервера

0

Я только начинаю с программирования AngularJS и Client-Server в целом. У меня есть клиент AngularJS и мой сервер Java (сделанный с помощью SparkJava Framework).

Это фрагмент кода моего контроллера:

var urlShortener = angular.module('urlShortener', []);

urlShortener.controller('shortenCtrl',
function($scope, $http){

    $scope.longUrl = "";

    $scope.shortening =
        function(longUrl){
            $http.get("http://localhost:4567/shortening", {params:{longUrl: longUrl}})
                .success(function(response){
                    alert("success");
                })
                .error(function(response){
                    alert("error");
                })
        }
 }

);

... и этот код сервера Maven Project

import static spark.Spark.*;

public class Server {

public static void main(String[] args) {

    get("/shortening", (request, response) -> {
        String longUrl = request.queryParams("longUrl");
        System.out.println(longUrl); //This works fine
        return "Yo";
    });
}
}

Я просто проверяю, что все продукты работают хорошо, но они этого не делают. Каждый раз, когда я пытаюсь отправить некоторые данные от клиента на сервер, все работает нормально. Но в конце, когда сервер отправляет ответ клиенту, на моем экране всегда появляется предупреждение "error", поэтому.success() он никогда не вызывал.

Зачем? Кто-нибудь может мне помочь? Благодарю.

Теги:
maven
spark-java
client-server

1 ответ

0

Если вы тестируете Google Chrome, нажмите F12, нажмите "Консоль" и выполните действие, которое вызывает функцию вашего контроллера. Вероятно, вы столкнулись со следующей ошибкой, не так ли?

В запрошенном ресурсе нет заголовка "Access-Control-Allow-Origin". Происхождение 'null', следовательно, не допускает доступа

В этом случае выполните следующие действия:

1: В вашем Java-коде установите статическое местоположение файла (вставьте первую строку в качестве первой инструкции для основного метода):

externalStaticFileLocation("<complete-path-to-the-directory-in-which-your-html-page-is>");

2: В вашем JavaScript-коде замените " http://localhost: 4567/shortening " на "/shortening"

3: Вместо двойного щелчка на вашем файле страницы, чтобы открыть его в браузере, откройте свой браузер и получите доступ к " http://localhost: 4567/yourpagename.html ".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню