简单的AngularJS $ http.get不适用于jsp页面

时间:2017-10-13 11:58:47

标签: angularjs eclipse jsp

1 /我在一个名为erixx:

的eclipse项目中创建了这个myPage.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE>
<html><head></head>
<body>
<% 
String aaa= request.getParameter("aaa");
String bbb= request.getParameter("bbb");
out.println("Message received ! : aaa : " + aaa + ", bbb : " + bbb);
%>
</body>
</html>

2 / firefox中的这个url显示jsp正常工作:

http://localhost:8080/erixx/myPage.jsp?aaa=123&bbb=456

=&GT;收到消息 ! :aaa:&#34; + 123 +&#34;,bbb:&#34; + 456

3 /我尝试从另一个项目inito eclipse访问相同的jsp页面,执行AngularJS代码,但不返回值aaa和bbb: 我使用了这里给出的例子

https://docs.angularjs.org/api/ng/service/ $ HTTP GET#

<html>  <head> <title>Your Shopping Cart</title>
    <script src="js/angular.min.js"></script>
    <script>
        var app = angular.module('myApp', []);  
        app.controller("CartController", function($scope, $http) {

$http({
  method: 'GET',
  url: 'http://localhost:8080/erixx/myPage.jsp?aaa=123&bbb=456'
}).then(function successCallback(response) {
    $scope.myData = "response : " + response.data;
    $scope.statuscode = response.status;
  }, function errorCallback(response) {
    $scope.myData = "reponse : " + response.data;
    $scope.statuscode = "An error occured";
  });       
        });
    </script>
</head>
<body ng-app="myApp">
    <div ng-controller="CartController">
        {{ myData }}
        </br>
        {{ statuscode }}
    </div>
</body>
</html>

=&GT;响应:null    发生错误

它应该有效,因为:

  • &#34; 2 /&#34;表明jsp工作正常,

  • 角度代码来自angularJS网站,

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

最有可能的是,跨域请求存在问题。如果要托管不同的域请求,则需要配置服务器。在这种情况下,您可以测试它添加下面的代码(这将允许访问所有域):

<%
response.addHeader("Access-Control-Allow-Origin","*"); 
String aaa= request.getParameter("aaa");
...
%>

然后,JSP将使用请求的资源和响应中的Access-Control-Allow-Origin标头进行响应。浏览器将检查标题中的原点并允许请求。

同时检查:Cross-Site Request Forgery