2015-08-16 10 views
0

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

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

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 проекта

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() он никогда не вызывается.

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

ответ

0

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

Нет заголовка «Контроль доступа-Разрешить-Происхождение» присутствует на запрошенном ресурсе. Происхождение «нулевой» поэтому не разрешен доступ

Если это так, то сделать де следующее:

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

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

2: в коде JavaScript, замените «http://localhost:4567/shortening» за «/ укорочения»

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

 Смежные вопросы

  • Нет связанных вопросов^_^