angularjs - 通过工厂在 Angular 1.x 中发送 Post 请求

标签 angularjs http angularjs-service angular-services angularjs-factory

帖子请求 url 应按以下格式更新。

https://www.example.com/api/one-push?type=json&query=push&title=____&url=____&tag=___

<form ng-submit="submitUrl()">
 <input type="text" class="form-control block" ng-model="url.title" placeholder="title">
  <input type="text" class="form-control block" ng-model="url.urlString" placeholder="url">
  <input type="text" class="form-control block" ng-model="url.tag" placeholder="tag">
  <button>Add</button>
</form>

var app = angular.module('app', [])
.controller('searchController', ['$scope', '$http','searchService',   function($scope, $http,searchService) {
$scope.submitUrl = function() {
  $scope.url = {};
      searchService.updateUrl($scope.url).success(function(data) {
        $scope.url = data;
      })
  }
  }]);

app.factory('searchService',function($http) {
  var url = " https://www.example.com/api/one-push?";
  var Info = {};
  Info.updateUrl = function(url) {
    return $http.post(url, { 
          type: "json",
          url: url.title,
          urlString: url.urlString,
          tag: url.tag
    });
  }
  return Info;
});

最佳答案

$http.post 方法的签名是post(url, data, [config])

这里的配置是可选的

因为您想在 post 请求中将数据作为查询字符串传递,所以您必须在配置对象上设置 params 属性。

工厂:

app.factory('searchService',function($http) {
    var url = " https://www.example.com/api/one-push";
    var Info = {};
    Info.updateUrl = function(url, data) {
       var _data = data || {};

       return $http.post(url, _data, { 
          responseType:  "json",

          // Pass the data you want to pass as query params on request
          params: {
               type: "json",
               url: _data.urlString,
               query: 'push',
               title: _data.title,
               tag: _data.tag
          }
       });
    }
    return Info;
});

关于angularjs - 通过工厂在 Angular 1.x 中发送 Post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638545/

相关文章:

javascript - angularjs - 单击具有实际 url 的链接时刷新

javascript - 即使没有插值,是否应该始终使用 "ng-src"?

swift - 如何将引号(“)包含到 Swift 中 HTTP Head 字段使用的字符串中

AngularJS - $scope.$watch 的机制 - 它只是一个观察者模式吗?

javascript - 将数据从外部模型绑定(bind)到 angularjs

javascript - 根据复选框 Angular 动态隐藏列

javascript - 如何使用 angularjs 或 jquery 将每个单击的按钮操作保存在 json 文件/对象中?

json - 在 ELM 中链接 http 请求并合并 json 响应

web-services - API POST 响应的符合标准的内容和格式是什么?

angularjs - 如何从任何地方关闭 Angular UI Modal