当前位置: 首页 > 知识库问答 >
问题:

从jquery$.ajax到angular$HTTP

阴福
2023-03-14

我有一段jQuery代码可以很好地跨原点工作:

jQuery.ajax({
    url: "http://example.appspot.com/rest/app",
    type: "POST",
    data: JSON.stringify({"foo":"bar"}),
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (response) {
        console.log("success");
    },
    error: function (response) {
        console.log("failed");
    }
});

现在我尝试将其转换为Angular.js代码,但没有成功:

$http({
    url: "http://example.appspot.com/rest/app",
    dataType: "json",
    method: "POST",
    data: JSON.stringify({"foo":"bar"}),
    headers: {
        "Content-Type": "application/json; charset=utf-8"
    }
}).success(function(response){
    $scope.response = response;
}).error(function(error){
    $scope.error = error;
});

感谢任何帮助。

共有3个答案

孟成文
2023-03-14

您可以使用以下内容:

下载“Angular-Post-Fix”:“^0.1.0”

然后在声明angular模块时向依赖项添加“HTTP后缀”。

参考:https://github.com/pablodegrote/angular-httppostfix

卞俊贤
2023-03-14

我们可以通过使用AngularJs中的http服务来实现ajax请求,它有助于从远程服务器读取/加载数据。

$HTTP服务方法如下所列,

 $http.get()
 $http.post()
 $http.delete()
 $http.head()
 $http.jsonp()
 $http.patch()
 $http.put()

示例之一:

    $http.get("sample.php")
        .success(function(response) {
            $scope.getting = response.data; // response.data is an array
    }).error(){

        // Error callback will trigger
    });

http://www.drtuts.com/ajax-requests-angularjs/

牛迪
2023-03-14

AngularJS调用$HTTP的方式如下所示:

$http({
    url: "http://example.appspot.com/rest/app",
    method: "POST",
    data: {"foo":"bar"}
}).then(function successCallback(response) {
        // this callback will be called asynchronously
        // when the response is available
        $scope.data = response.data;
    }, function errorCallback(response) {
        // called asynchronously if an error occurs
        // or server returns response with an error status.
        $scope.error = response.statusText;
});

也可以使用快捷方法编写得更简单:

$http.post("http://example.appspot.com/rest/app", {"foo":"bar"})
.then(successCallback, errorCallback);

有很多事情需要注意:

  • AngularJS版本更简洁(特别是使用.post()方法
  • AngularJS将负责将JS对象转换为JSON字符串并设置头(这些是可自定义的)
  • 回调函数分别命名为成功错误(还请注意每个回调的参数)-在angular V1.5中不推荐使用
  • 改用then函数。
  • 有关then用法的详细信息,可在此处找到

以上只是一个简单的示例和一些指针,请务必查看AngularJS文档以获得更多信息:http://docs.AngularJS.org/api/ng.$http

 类似资料:
  • 问题内容: 我有这段可以很好地跨源工作的jQuery代码: 现在,我试图将其转换为Angular.js代码,但没有成功: 任何帮助表示赞赏。 问题答案: AngularJS调用$ http的方式如下所示: 或者可以使用快捷方式将其编写得更加简单: 有很多事情要注意: AngularJS版本更简洁(尤其是使用.post()方法) AngularJS将负责将JS对象转换为JSON字符串并设置标头(可自

  • 问题内容: 我使用jquery ajax从javascript调用php的代码似乎存在问题。Ajax调用似乎成功了,但是我没有从php函数返回正确的信息。 在php函数中,我创建一个SQL查询。在执行删除查询之前,我将查询发回作为调试的响应。这是显示查询的div的HTML。 这是jquery ajax调用。有两个变量发送给PHP函数:用于删除节点的nodeid和用于该函数的option delet

  • 问题内容: 好吧,我已经建立了我的json字符串,但是我不确定下一步该怎么做? 在我的php文件中,我试图将dataString写入文本文件,这样我可以看到它通过ok,但是文本文件中什么都没有!我在客户端或PHP方面做错了什么,我的php代码: 问题答案: 您为什么不尝试像这样构造数据 然后在您的AJAX通话中 现在,您的PHP脚本可以将数据作为多维数组处理

  • 问题内容: 我正在尝试在C#上检索JSON对象,这是我的JavasSciprt帖子,但无法在代码隐藏中处理它,谢谢! 我试图检索数据,如: 问题答案: 这是Encosia.com提供的示例(我添加了一个form参数)。您不需要访问-您可以改用方法参数。 代码隐藏 Java脚本

  • 问题内容: 我看过很多教程,但是它们是如此混乱,以至于无法做我想做的事情,我只是不知道如何使用这些教程中的现有内容,并使它们按我希望的方式工作。 我有一个非常简单的表单,其中包含一个文本框,标签和一个提交按钮。当用户在表单中输入内容,然后单击提交时,我想使用php和ajax(带有jquery)将表单的结果插入到mysql数据库中。 有人可以告诉我如何实现吗?我需要的只是非常基本的东西,可以帮助我入

  • 问题内容: 我试图在我自己的函数中使用jQuery ajax调用的返回值,但它始终返回未定义的值。 ajax调用绝对有效,因为当我取消注释警报时,我得到了正确的返回,并且可以在firebug中看到它。我在做蠢事吗? 问题答案: AJAX调用是异步的-这意味着AJAX请求是按常规程序执行顺序发出的,并且在您的程序中这意味着不会将数据返回警报。 您不能以这种方式使用调用的返回值,而是将利用AJAX返回