angularjs - 以 angularjs 形式发布的 http 帖子

标签 angularjs forms http post

我正在尝试从 AngularJS 中的表单获取参数并将其发送到像这样用 URL 编码的远程 Web API。 http://lowc---.com/storeManager/createParentStore?token=6fc72be8-4153-432e-9191-64a9e3b23a9e&name=xyz%20store&city=1&address=abc

但是我收到以下错误

 - TypeError: $http(...).success is not a function

 - Failed to load resource: the server responded with a status of 404 (Not Found)

 - Possibly unhandled rejection: {"data":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /storeManager/createParentStore</pre>\n</body>\n</html>\n","status":404,"config":{"method":"POST","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"http://low----.com/storeManager/createParentStore","data":{"name":"$scope.user.name","city":"$scope.user.city","address":"$scope.user.address"},"headers":{"Accept":"application/json, text/plain, */*"}},"statusText":"Not Found"}angular.js:14328 Possibly unhandled rejection: {"data":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /storeManager/createParentStore</pre>\n</body>\n</html>\n","status":404,"config":{"method":"POST","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"http://lowcost-env.2u3kmcbg4k.us-west-2.elasticbeanstalk.com/storeManager/createParentStore","params":{"name":"$scope.user.name","city":"$scope.user.city","address":"$scope.user.address"},"headers":{"Accept":"application/json, text/plain, */*"}},"statusText":"Not Found"}`

<!DOCTYPE html>
<html lang="en" ng-app="mainApp">

<head>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular-route.js"></script>

  <script src="addRetailerCtrl.js"></script>
</head>

<body ng-controller="addRetailerCtrl">

  <form class="form-horizontal" name="userForm" ng-submit="submitForm()">
    <div class="panel panel-default">
      <div class="panel-heading">
        <h3 class="panel-title"><strong>Add new </strong></h3>

      </div>

      <div class="panel-body form-group-separated">

        <div class="form-group">
          <label class="col-md-3 col-xs-12 control-label">Name</label>
          <div class="col-md-6 col-xs-12">
            <div class="input-group">
              <span class="input-group-addon"><span class="fa fa-pencil"></span></span>
              <input type="text" class="form-control" name="name" ng-model="user.name" />
            </div>

          </div>
        </div>

        <div class="form-group">
          <label class="col-md-3 col-xs-12 control-label">City</label>
          <div class="col-md-6 col-xs-12">
            <select class="form-control select" name="city" ng-model="user.city">
                                                <option>City 1</option>
                                                <option>City 2</option>
                                                <option>City 3</option>
                                                
                                            </select>

          </div>

        </div>
        <div class="form-group">
          <label class="col-md-3 col-xs-12 control-label">Address</label>
          <div class="col-md-6 col-xs-12">
            <textarea class="form-control" rows="5" name="address" ng-model="user.address"></textarea>

          </div>

        </div>

angular.module('mainApp', [])
  .controller('addRetailerCtrl', function($scope, $http) {
    alert('i am here');

    $scope.submitForm = function() {
      // Posting data to php file
      $http({
          method: 'POST',
          url: 'http://low--.com/storeManager/createParentStore?token=6fc72be8-4153-432e-9191-64a9e3b23a9e',
          // data    : $scope.user, //forms user object
          data: {
            name: "$scope.user.name",
            city: "$scope.user.city",
            address: "$scope.user.address"
          },
          headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
          }
        })
        .success(function(data) {

          $scope.message = data.message;

        });
    };
  });

最佳答案

success()error() 已从 $http 弃用 自定义回调方法 while Migrating from 1.5 to 1.6 .
您可以改用标准的 then()/catch() promise 方法,但请注意方法签名和返回值是不同的。

关于angularjs - 以 angularjs 形式发布的 http 帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43360600/

相关文章:

javascript - ng-sortable 在表上。当我拖动一行时,CSS 被抛出

c# - Angular 到 webapi httppost 调用发送用户对象,一旦它们到达用户 obj 下的 webapi 服务属性将变为 null(usrnm/pswd)

javascript - ng-click $event = 未定义

javascript - 如何使用jquery防止清除表单中的表单字段无效?

php - 无法让查询在 php CRUD 系统中工作以检查重复项

javascript - WordPress - 无法使用变量

flutter | Dart : Target of URI does not exist

angularjs - Angular : parse a URL into a route and params without following that URL?

Curl 不会在 HTTP POST 请求中发送整个表单数据

php - 使用 guzzle 发送发布请求时找不到客户端错误 404