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

HTTP Post故障与角度

宗政卓
2023-03-14

我是个新手。js和我无法获得一个简单的POST请求来工作。我使用的是angular版本1.4。8.我的请求从未发送到服务器。相反,客户端似乎在发出请求之前出错了。我看不出我做错了什么,尽管我已经阅读了这里的文档:https://docs.angularjs.org/api/ng/service/$http#post。以下是我的相关错误信息(使用下面的代码示例生成):

{“数据”:null,“状态”:-1,“配置”:{“方法”:“POST”,“transformRequest”:[null],“transformResponse”:[null],“url”:http://localhost:4567/foo“,“数据”:{“foo”:“bar”},“标题”:{“Accept”:“application/json,text/plain,/”,“内容类型”:“application/json;charset=utf-8”},,“statusText”:“}”

这是我的代码示例。它在firefox和chrome中都重现了这个问题,所以这似乎不是浏览器的怪癖。因为我是一个棱角分明的新手,这可能是一些基本的东西(但对我来说并不明显)。感谢您的帮助;)

<!DOCTYPE HTML>
<html lang="en-US">

<head>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>

<body>
<script>
    var app = angular.module('myApp', []);
    app.controller('customersCtrl', function ($scope, $http) {

        $scope.httpPost = function (postBody) {
            var successCallback = function (data, status, headers, config) {
                alert("post success");
            };

            var errorCallback = function (data, status, headers, config) {
                var responseJson = angular.toJson(data);
                $scope.theError = responseJson;
            };

            $http.post('http://localhost:4567/foo', postBody).then(successCallback, errorCallback);

        };

        var postBody = {"foo" : "bar"};
        $scope.httpPost(postBody);
    });
</script>

<div data-ng-app="myApp" data-ng-controller="customersCtrl">
    <pre>{{theError}}</pre>
</div>

</body>
</html>

共有1个答案

崔恺
2023-03-14

虽然我不知道你的问题的答案,但我可以建议什么对我有效吗?我也是一个棱角分明的初学者。另外,请看一下John Papa的角度指南,以获得更好的代码。

前端

angular
    .module('app')
    .config(config);

function config($routeProvider) {
    $routeProvider.when('/add-job', {
        templateUrl: 'templates/add-job.view.html',
        controller: AddController,
        controllerAs: 'addCtrl'
    });
};

function AddController($http) {
    var that = this;

    that.add_new = function (job) {
        $http.post('api/add_job', that.job).success(function () {
            //alert("added!");
        });
    };
}

后端-超薄框架

require 'vendor/autoload.php';

$app = new \Slim\App; 

$app->post('/add_job', 'addJob');

function addJob($request) {
    $job = json_decode($request->getBody());
    $sql = "INSERT INTO jobs (title, company, location) VALUES (:title, :company, :location)";
    try {
        $db = getConnection();
        $stmt = $db->prepare($sql);  
        $stmt->bindParam("title", $job->title);
        $stmt->bindParam("company", $job->company);
        $stmt->bindParam("location", $job->location);
        $stmt->execute();
        $job->id = $db->lastInsertId();
        $db = null;
        echo json_encode($job); 
    } catch(PDOException $e) {
    echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}

查看

<form novalidate name="AddNewForm" method="post" action="">

    <input type="text" ng-model="addCtrl.job.title" placeholder="Title" /><br/>
    <input type="text" ng-model="addCtrl.job.company" placeholder="Company" /><br/>
    <input type="text" ng-model="addCtrl.job.location" placeholder="Location" /><br/>

    <button ng-click="addCtrl.add_new(job)">Save!</button>

</form>
 类似资料:
  • Webpack 的配置比较复杂,很容出现错误,下面是一些通常的故障处理手段。 一般情况下,webpack 如果出问题,会打印一些简单的错误信息,比如模块没有找到。我们还可以通过参数 --display-error-details 来打印错误详情。 $ webpack --display-error-details Hash: a40fbc6d852c51fceadb Version: webpa

  • 初始设置 在创建并启动新的 Serene 应用程序之后,不能显示登录页,而当你打开浏览器控制台,却得到一条错误消息:找不到 Template.LoginPanel: 你可能使用了无效的解决方案名称,如 MyProject.Something (包含点’.’)。 当项目以这种方式命名时,模板系统将不能定位模板。 请不要在解决方案名称中使用点符号(’.’),如果必须使用点符号,可在创建解决方案之后再重

  • 有人能帮我吗?我尝试使用Firepath进行正确的Xpath,但是它给我的代码在我看来是不正确的。示例中的第一行是提供的。 在这里我想检查之间的文本是否大于或等于1 另一个是: 在这里,我想检查div类公共结果是否已生成,1项等于1个公共结果

  • 当使用 Gradle 时, 你肯定会碰到许多问题. 解决遇到的问题 如果你碰到了问题, 首先要确定你使用的是最新版本的 Gradle. 我们会经常发布新版本, 解决一些 bug 并加入新的功能. 所以你遇到的问题可能就在新版本里解决了. 如果你正在使用 Gradle Daemon, 先暂时关闭 daemon (你可以使用 switch —no-daemon 命令). 在第19章我们可以了解到更多关

  • 如果 Flarum 无法安装或者是没有按照预期运行,第一件需要做的事情就是再次检查你的环境是否达到了系统要求。如果你缺失部分 Flarum 的依赖项(例如 PHP 的 fileinfo 扩展),你将需要先处理这些问题。 接下来,你应该花上几分钟在支持论坛和问题追踪器内检索。有可能有人已经汇报了这个问题,或者解决方案正在讨论,或者已经有解决方案。在检索过后,如果你仍然没有发现关于这个问题的信息的话,

  • 如果 Flarum 没有按照预期那样安装或工作,您 首先应该检查 服务器环境是否符合 系统要求。如果您缺少一些 Flarum 运行所需的东西,请先补全内容。 然后,请花几分钟时间搜索 支持论坛和 问题跟踪器,有可能该问题已被报告,并且有了解决办法。如果您彻底搜索后,仍然没有找到任何有用的信息,那么就可以开始排查故障了。 在继续前,您应当启用 Flarum 的调试模式。用文本编辑器打开 config