繁体   English   中英

Angular Rest Web2py

[英]Angular rest web2py

我无法使用angular Ajax连接服务器web2py,但是如果我在浏览器中设置url,就可以了,但是我不能使用angular ajax =(

角链接

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.16/angular-route.min.js"></script>

我的服务器web2py中的Mi代码(控制器)

@request.restful()
def api(): 
    response["Access-Control-Allow-Origin"] = "*"
    response["Access-Control-Allow-Methods"] = "POST, GET, OPTIONS"
    response["Access-Control-Max-Age"] = "1000"
    response["Access-Control-Allow-Headers"] = "*"
    response.view = 'generic.json'
    def GET():
            print "asdasds"
            return dict(content="JAJAJAJAJA")

    return dict(GET=GET)

和mi AJax在angular url = Address:port / nameProject / controller / action中

  app.controller('controlVentas',  function( $http) {
  var app = this; 
  app.CargarLlave=function(){ 
       var respuesta=$http.get("http://127.0.0.1:8000/Hoteles/ControlMSR/api");
       respuesta.success(function(data){ 
                   alert( "OK"); 
              });
       respuesta.error(function(data, status, headers, config){
                  alert( "NOOOOO"); 
           });  
  } 
});

角度误差

XMLHttpRequest cannot load http://127.0.0.1:8000/Hoteles/ControlMSR/api. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:57734' is therefore not allowed access.

设置响应头的正确方法是通过response.headers ,而不是直接在response对象上。 例如:

response.headers["Access-Control-Allow-Origin"] = "*"

这是我的最终代码,谢谢大家=)

mi Web2Py中的代码

@request.restful()
def api():
    response.view = 'generic.json'
    response.headers["Access-Control-Allow-Origin"] = '*'
    response.headers['Access-Control-Max-Age'] = 86400
    response.headers['Access-Control-Allow-Headers'] = '*'
    response.headers['Access-Control-Allow-Methods'] = '*'
    response.headers['Access-Control-Allow-Credentials'] = 'true'

    def GET():
         names = ['1dddedede', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
         return dict(person=names)

    return locals()

角度代码

app.controller('controlVentas',  function( $http) {
  var app = this; 
  app.CargarLlave=function(){ 
       var respuesta=$http.get("http://127.0.0.1:8000/Hoteles/ControlMSR/api");
       respuesta.success(function(data){ 
                   alert( "OK"); 
              });
       respuesta.error(function(data, status, headers, config){
                  alert( "NOOOOO"); 
           });  
  } 
});    

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM