标签: angular-http

如何将数据作为表单数据而不是请求有效负载发布?

在下面的代码中,AngularJS $http方法调用URL,并将xsrf对象作为"请求有效负载"提交(如Chrome调试器网络选项卡中所述).jQuery $.ajax方法执行相同的调用,但将xsrf提交为"Form Data".

如何让AngularJS将xsrf作为表单数据而不是请求有效负载提交?

var url = 'http://somewhere.com/';
var xsrf = {fkey: 'xsrf key'};

$http({
    method: 'POST',
    url: url,
    data: xsrf
}).success(function () {});

$.ajax({
    type: 'POST',
    url: url,
    data: xsrf,
    dataType: 'json',
    success: function() {}
});
Run Code Online (Sandbox Code Playgroud)

ajax post angularjs angular-http

517
推荐指数
12
解决办法
39万
查看次数

AngularJs $ http.post()不发送数据

谁能告诉我为什么以下声明不会将发布数据发送到指定的网址?当我打印$ _POST时,在服务器上调用url - 我得到一个空数组.如果我在将数据添加到数据之前在控制台中打印消息 - 它会显示正确的内容.

$http.post('request-url',  { 'message' : message });
Run Code Online (Sandbox Code Playgroud)

我也尝试将数据作为字符串(具有相同的结果):

$http.post('request-url',  "message=" + message);
Run Code Online (Sandbox Code Playgroud)

当我以下列格式使用它时它似乎正在工作:

$http({
    method: 'POST',
    url: 'request-url',
    data: "message=" + message,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
Run Code Online (Sandbox Code Playgroud)

但有没有办法用$ http.post()来做 - 并且我总是必须包含标题才能使它工作?我相信上面的内容类型是指定发送数据的格式,但我可以将其作为javascript对象发送吗?

post angularjs angular-http

333
推荐指数
16
解决办法
69万
查看次数

在服务中处理$ http响应

我最近公布的我面对这个问题的详细说明,这里的SO.由于我无法发送实际$http请求,因此我使用超时来模拟异步行为.在@Gloopy的帮助下,从我的模型到视图的数据绑定工作正确

现在,当我使用$http而不是$timeout(在本地测试)时,我可以看到异步请求成功并data在我的服务中填充了json响应.但是,我的观点不是更新.

在这里更新了Plunkr

javascript angularjs angular-http

233
推荐指数
6
解决办法
26万
查看次数

AngularJs ReferenceError:$ http未定义

我有以下Angular函数:

$scope.updateStatus = function(user) {    
    $http({
        url: user.update_path, 
        method: "POST",
        data: {user_id: user.id, draft: true}
    });
};
Run Code Online (Sandbox Code Playgroud)

但无论什么时候调用这个函数,我都会进入ReferenceError: $http is not defined我的控制台.有人可以帮我理解我在做错了吗?

javascript-framework angularjs angular-http

197
推荐指数
2
解决办法
15万
查看次数

如何在AngularJS中取消$ http请求?

给出AngularJS中的Ajax请求

$http.get("/backend/").success(callback);
Run Code Online (Sandbox Code Playgroud)

如果启动另一个请求(相同的后端,例如不同的参数),取消该请求的最有效方法是什么.

promise cancellation angularjs angular-http angular-promise

184
推荐指数
5
解决办法
11万
查看次数

从jquery $ .ajax到angular $ http

我有这个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");
    }
});
Run Code Online (Sandbox Code Playgroud)

现在我想把它转换成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;
});
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏.

ajax jquery cross-domain angularjs angular-http

121
推荐指数
1
解决办法
14万
查看次数

$ http get参数不起作用

有谁知道为什么这不起作用?

$http
    .get('accept.php', {
        source: link,
        category_id: category
    })
    .success(function (data, status) {
        $scope.info_show = data
    });
Run Code Online (Sandbox Code Playgroud)

这确实有效:

$http
    .get('accept.php?source=' + link + '&category_id=' + category)
    .success(function (data, status) {
        $scope.info_show = data
    });
Run Code Online (Sandbox Code Playgroud)

javascript http angularjs angular-http

93
推荐指数
1
解决办法
11万
查看次数

Angular 4.3 - HttpClient设置参数

let httpParams = new HttpParams().set('aaa', '111');
httpParams.set('bbb', '222');
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?它只设置'aaa'而不是'bbb'

另外,我有一个对象{aaa:111,bbb:222}如何在不循环的情况下设置所有值?

更新(这似乎工作,但如何避免循环?)

let httpParams = new HttpParams();
Object.keys(data).forEach(function (key) {
     httpParams = httpParams.append(key, data[key]);
});
Run Code Online (Sandbox Code Playgroud)

angular-http angular

68
推荐指数
8
解决办法
9万
查看次数

AngularJS中的错误处理http get然后构造

当使用AngularJS"http get then"构造(promises)时,如何处理HTTP错误,例如500?

$http.get(url).then(
    function(response) {
        console.log('get',response)
    }
)
Run Code Online (Sandbox Code Playgroud)

问题是,对于任何非200 HTTP响应,都不会调用内部函数.

javascript promise angularjs angular-http angular-promise

65
推荐指数
3
解决办法
10万
查看次数

Angularjs从$ http自动完成

我正在尝试编写一个自动完成指令,该指令使用$ http请求从服务器获取数据(不使用任何外部插件或脚本).目前它仅适用于静态数据.现在,我知道我需要将$ http请求插入到source:指令中,但是我找不到关于这个主题的任何好的文档.

http请求

$http.post($scope.url, { "command": "list category() names"}). 
            success(function(data, status) {
                $scope.status = status;
                $scope.names = data;    
            })
            .
            error(function(data, status) {
                $scope.data = data || "Request failed";
                $scope.status = status;   
            });
Run Code Online (Sandbox Code Playgroud)

指示

app.directive('autoComplete', function($timeout) {
    return function(scope, iElement, iAttrs) {
            iElement.autocomplete({
                source: scope[iAttrs.uiItems],
                select: function() {
                    $timeout(function() {
                      iElement.trigger('input');
                    }, 0);
                }
            });
        };
    });
Run Code Online (Sandbox Code Playgroud)

视图

<input auto-complete ui-items="names" ng-init="manualcat='no category entered'" ng-model="manualcat"> 
Run Code Online (Sandbox Code Playgroud)

那么,我如何正确地将这一切拼凑成Angular方式呢?

autocomplete directive angularjs angular-http

60
推荐指数
4
解决办法
15万
查看次数