【发布时间】:2017-08-27 22:56:27
【问题描述】:
我无法将我的服务器 web2py restful 与 angular Ajax 连接起来, 但是如果我在浏览器中设置 url 就可以了,但是我不能使用 angular ajax =(
Angular 的链接
<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 的角度 url= 地址: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.
【问题讨论】:
-
它是
$http.get,而不是$http.GET。是的,大小写在这里很重要,这是有角度的get()函数,而不是正在调用的服务器上的GET方法。此外,您没有在控制器注入中提供$http。试试app.controller('controlVentas', ['$scope', '$http', function($scope, $http) { -
现在进化mi问题,一秒更新
-
在 mi 控制器中被调用,方法和它的工作,被激活但没有响应。 O.o
-
你需要有 CORS。
127.0.0.1:8000和127.0.0.1:57734不是同一个站点。例如,试试stackoverflow.com/questions/34621368/…。
标签: javascript angularjs ajax rest web2py