0
嘗試在我的表中插入一條新記錄,並且當我想插入時,我總是得到一個錯誤400(錯誤的請求,語法錯誤)與日期字段的行。我測試了從表單中刪除了「日期」字段的POST並且它工作正常。只要我添加這個輸入就會停止工作。這是一個簡單的文本輸入,我使用現有行中的日期(複製/粘貼)來測試它,因爲它可以與$ http.PUT一起使用。
我擁有 '的Content-Type': '應用/的X WWW的形式,進行了urlencoded'
當我更新現有行($ http.PUT)它完美,但當我嘗試創建一個新的沒有。我是新手,我搜索了很多論壇,但我找不到任何正在做我想做的事情的例子。
我不知道提供什麼來幫助你理解,但問我,我會分享。
非常感謝!您的幫助非常感謝!
編輯:我添加角代碼,以幫助
$scope.createDepense = function (newDepenseForm) {
if (!newDepenseForm.$valid) {
$scope.displayValidationError = true;
return;
}
$scope.lastAction = 'create';
var url = $scope.url;
var config = {headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}};
$scope.addSearchParametersIfNeeded(config, false);
$scope.startDialogAjaxRequest();
debugger;
$http.post(url, $.param($scope.depense), config)
.success(function (data) {
$scope.finishAjaxCallOnSuccess(data, "#addDepensesModal", false);
})
.error(function(data, status, headers, config) {
console.log(headers);
console.log(config);
console.log(status);
console.log(data);
debugger;
$scope.handleErrorInDialogs(status);
});
};
而且我的模型:
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@Entity
public class Depenses {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id_fact")
private int idFact;
@Column(name="date_eff")
private Timestamp dateEff;
etc...
這是當我更新的記錄(PUT,工作) working $http.PUT with date changed
而$ http.POST不能正常工作 not working $http.POST
也試過,但沒有成功
@Column(name="date_eff")
@Temporal(TemporalType.TIMESTAMP)
private Date dateEff;
您是否將數據作爲字符串發送?作爲日期?在後端服務器期待什麼樣的類型?如果您的POST在不同的環境下工作,它可能是一個數據格式問題。 – wdoering
是的,它似乎與數據格式有關。數據庫字段是「日期時間」。正如我在調試Angular時可以看到的,在$ scope中,數據在POSTing時是String(在雙引號之間)。 –
thx很多,你的問題發送給我的「格式」路徑!它幫助了很多 –