我有一个填充下拉列表的ajax代码,我使用mvc c#。 当我从ajax调用我的方法并且我在方向栏中有一个没有参数的URL时代码正常工作,但是如果我在方向栏中的url中有一个参数,则这不起作用并出现此错误: “{readyState:4,getResponseHeader:ƒ,getAllResponseHeaders:ƒ,setRequestHeader:ƒ,overrideMimeType:ƒ,...}”。
这是我的代码:
$.ajax({
url:"../Records/myList",
type: "POST",
dataType: 'json',
contentType: 'application/json',
// data: JSON.stringify(Data),
success: function (resul) {
Function(resul);
},
error: function (message) {
}
});
我的网址:http://localhost:123/Record/EditRecord - >>所以它的工作原理
我的其他网址:http://localhost:123/Record/EditRecord/1 - >>它不像这样
提前致谢。
答案 0 :(得分:0)
我无法看到代码中的任何错误,但如果您选择使用数据属性(ajax函数),我建议尝试让param在服务器上附带它的名称:
{key1: 'value1', key2: 'value2'}
或者您使用字符串查询:
page?name=ferret&color=purple
bacuse你只是说第一种方法是工作我假设不需要检查POST / GET方法。
编辑:
授予this。
答案 1 :(得分:0)
从给定的第二个URL(它不起作用)我假设你想使用jQuery AJAX和HttpGet
方法。 URL模式匹配此路由:
http://localhost:123/{controller}/{action}/{id}
id
视为UrlParameter
。
因此你需要使用动作参数&表示URL参数值的数据,如下例所示:
<强>控制器强>
[HttpGet]
public ActionResult EditRecord(int id)
{
// other stuff
}
查看(JS)
$.ajax({
url: "/Record/EditRecord",
type: "GET",
dataType: 'json', // response type
contentType: 'application/x-www-form-urlencoded; charset=utf-8', // header content type
data: { id: 1 },
processData: true, // this is important to use in GET methods
success: function (result) {
Function(result);
},
error: function (message) {
// throw error
}
});
或者直接使用URL参数适用于GET方法而不指定data
内容:
查看(JS)
$.ajax({
url: "Record/EditRecord/1",
type: "GET",
processData: true, // this is important to use in GET methods
success: function (result) {
Function(result);
},
error: function (message) {
// throw error
}
});
注意:使用jQuery.get
作为简化版本:
$.get("/Record/EditRecord/1", function (result) {
Function(result);
}, "json").error(function (message) { // throw error
});
PS:如果您正在寻找使用AJAX的正确POST方法,这是HTTP POST请求的示例。
<强>控制器强>
[HttpPost]
public ActionResult EditRecord(Record rec)
{
// other stuff
}
查看(JS)
$.ajax({
url: "/Record/EditRecord",
type: "POST",
dataType: 'json', // response type
contentType: 'application/json; charset=utf-8', // header content type
data: JSON.stringify({ rec: { id: 1, name: 'XXXX', ... }}),
success: function (result) {
Function(result);
},
error: function (message) {
// throw error
}
});
参考: