gpt4 book ai didi

javascript - Ajax post返回数据到地址栏

转载 作者:行者123 更新时间:2023-11-30 20:00:54 24 4
gpt4 key购买 nike

所以我在使用 ajax POST 时遇到问题,它将数据返回到地址栏,就好像它在执行 get 请求一样,但我只指定了每个执行 POST 的请求。有趣的是,当我将这段代码推送到我的 git 仓库时,它正在运行。我在测试一个新的提交时注意到了这个问题,所以我恢复到这个提交,这个问题在以前出现了,但以前没有出现。

返回示例- http://localhost:50922/Agency?id=0&createdbytype=&lastupdatedbytype=&created=01%2F01%2F0001+00%3A00%3A00&lastupdated=01%2F01%2F0001+00%3A00%3A00&name=100test&address1=test&address2=test&address3=test&town=test&countyid=1&postcode=test&telephoneno=54252636&

我的提交javascript函数

function SubmitForm(form) {
if ($(form).valid()) {
$.ajax({
type: "POST",
url: form.action,
data: $(form).serialize(),
success: function(data) {
if (data.success) {
Popup.dialog('close');
dataTable.ajax.reload();

$.notify(data.message,
{
globalPosition: "bottom center",
className: "success"
});
}
}
});
}
return false;
}

我的表格指示符

<form>
@using (Html.BeginForm("AddOrEdit", "Agency", FormMethod.Post, new {onsubmit = "return SubmitForm(this)"}))

在发布时,表单应该运行上面的那段 JS,但它只会发出一个获取请求,正如我之前所说,这段代码是有效的。

POST 应该将数据发布到我的 Controller 中的一个方法,但它现在永远不会那么远。我已经尝试从提交 JS 的顶部进行调试,一旦我打开页面,调试器首先到达这里:

function Delete(id) {
if (confirm("Are you sure you wish to delete this item?")) {
$.ajax({
type: "POST",
url: '@Url.Action("Delete", "Agency")/'+id, //<- here
success: function(data) {
if (data.success) {
dataTable.ajax.reload();

$.notify(data.message,
{
globalPosition: "bottom center",
className: "success"
});
}
}
});
}
}

特别是

url: '@Url.Action("Delete", "Agency")/'+id,

但是删除功能工作正常。它更改了传递的 id 的 bool 值,因为它是软删除,其中元组被标记为已删除或未删除。

我完全不知道为什么会出现这个问题。非常感谢任何帮助。

最佳答案

你有你的 BeginForm()<form> 里面元素(嵌套形式是无效的 html),它的外部形式(默认情况下是 GET)正在提交,而不是内部形式(因此你的 SubmitForm() 脚本永远不会执行)。

去掉外面的<form>表单元素。

关于javascript - Ajax post返回数据到地址栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53391529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com