我是个新手。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>
虽然我不知道你的问题的答案,但我可以建议什么对我有效吗?我也是一个棱角分明的初学者。另外,请看一下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