与角$ http和ajax调用的区别

时间:2015-02-10 23:10:50

标签: jquery ajax angularjs cors

我正在使用AngularJs进行开发和应用。一切正常,我在网络服务器上测试它,我把PHP包括为$ http请求。 现在我要创建一个网站来支持这个应用程序,我使用相同的php文件,但使用jquery + ajax进行调用。 为什么对于相同的调用,使用ajax,我返回

HTTP错误405.0 - 不允许的方法

这是我的angula代码:

 $scope.doLogin = function() {
      $http.post('/app/include/login.asp?username='+$scope.loginData.username+'&password='+$scope.loginData.password, $scope.loginData).success(function(data){
          if (data.error == ''){$state.go("app.bentornato");$localstorage.set('name', data.name);$localstorage.set('user_id', data.id);$localstorage.set('position', data.position);$localstorage.set('avatar',data.avatar);$rootScope.avatar = data.avatar} else {$ionicLoading.show({template: "Hai inserito dati errati!", duration: 1000})};
          }).error(function(data, status){$scope.errors.push(status);});

这是我的jquery代码:

function exeLogin(){
    var nam=$("#USERNAME").val();
    var pas=$("#PASSWORD").val();
    $.ajax({
        type: "GET",
        url: "/app/include/login.asp",
        data: "username="+nam+"&password="+pas,
        success: function(data){alert(data)},
        error: alert("Errore connessione!")
        });
}

我还在web.config中输入了Access-Control-Allow-Origin值=“”和login.asp中的response.addHeader“Access-Control-Allow-Origin”,“”! 为什么角度工作正常并且没有jquery?!

1 个答案:

答案 0 :(得分:0)

$http.post发出POST请求时,

$.ajax正在发出GET请求,这可能是“不允许方法”错误的原因。

与jQuery调用等效的Angular将是$http.get(url)

但是,您不应该使用GET请求来发送凭据(或将其置于带有POST请求的网址中),因为它们可能存储在访问日志中。如果您拥有服务器,则应获取有关如何接受POST请求的信息。否则,请询问您的服务器管理员。