[英]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.