英文:
Golang + ajax post data
问题
我有一个页面上有多个字段,没有使用表单设置,因为我想要能够单独对它们进行操作并使用ajax进行提交。我正在使用Go来处理提交的数据。然而,似乎会多次提交,因为在我的Go代码中,我将一个post变量输出到控制台进行测试,它会输出5次,这代表了提交数据中的变量数量。当我只是使用jquery的alert来显示提交的数据时,也出现了这种行为。我是否对ajax提交有什么误解,或者还有其他bug出现了?
Go代码
func addProduct(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
frmCategory:=r.PostFormValue("category")
fmt.Println(frmCategory)
}
func main() {
router:=httprouter.New()
router.POST("/addProduct",addProduct)
}
AJAX代码
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" type="text/css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
<!--<script src="http://code.jquery.com/jquery-1.4.1.min.js"></script> -->
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel='stylesheet' type='text/css'>
var postData="bcode="+ $('#bCodeID').val()+"&category="+$("#selected_category").val()+"&price="+priceModifier+"&description="+$('#itemDescription').val()+"&colorcode="+$('#SelectedColorCode').val();
$.ajax({
url: '/addProduct',
type: 'post',
dataType: 'text',
data : postData,
success : function(data) {
$('#warningBox').modal({
show: false
});
}
});
控制台输出
Toys
Toys
Toys
Toys
Toys
Toys
Toys
英文:
I've got a page with a number of fields, not in a form setup because I wanna be able to act on them individually and post with ajax. I am using Go to process the post data. However, it seems to post multiple times because in my Go code I am outputting a post variable to the console to test, and it dumps the output 5 times, which represents the number of variables in the post data. I also had this type of behavior when I just used a jquery alert to show the post data. Am I misunderstanding something about how ajax posts, or is there some other bug going on?
Go code
func addProduct(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
frmCategory:=r.PostFormValue("category")
fmt.Println(frmCategory)
}
func main() {
router:=httprouter.New()
router.POST("/addProduct",addProduct)
}
AJAX code
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" type="text/css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
<!-- <script src="http://code.jquery.com/jquery-1.4.1.min.js"></script> -->
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel='stylesheet' type='text/css'>
var postData="bcode\="+ $('#bCodeID').val()+"&category\="+$("#selected_category").val()+"&price\="+priceModifier+"&description\="+$('#itemDescription').val()+"&colorcode\="+$('#SelectedColorCode').val();
$.ajax({
url: '/addProduct',
type: 'post',
dataType: 'text',
data : postData,
success : function(data) {
$('#warningBox').modal({
show: false
});
}
});
Console output
Toys
Toys
Toys
Toys
Toys
Toys
Toys
答案1
得分: 1
我发现了这个错误。之前我在尝试不允许在模态对话框之外点击时,使用了$(document).click(function () { ... })
包裹了我的所有JavaScript代码。一旦我移除了这部分代码,其他的问题都解决了。
英文:
I found the bug. Earlier I was experimenting with not allowing clicks outside of a modal dialog, and was using $(document).click(function () { ... } wrapped around all my jscript code. Once I removed that, everything else fixed itself.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论