【问题标题】:Difference from angular $http and ajax call与角度 $http 和 ajax 调用的区别
【发布时间】:2015-04-11 04:39:05
【问题描述】:

我正在使用 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 value="" 和 login.asp response.addHeader "Access-Control-Allow-Origin", ""! 为什么 Angular 可以正常工作而 jquery 不行?!

【问题讨论】:

  • 获取 2 个完整的原始 HTTP 请求并进行比较。

标签: jquery ajax angularjs cors


【解决方案1】:

$http.post 正在发出 POST 请求,而您的 $.ajax 正在发出 GET 请求,这可能是 Method Not Allowed 错误的原因。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2019-07-07
    • 2015-02-26
    • 2023-04-01
    • 2021-10-01
    • 2014-10-09
    相关资源
    最近更新 更多