Javascript 构建到MVC控制器的POST url
有人能给我指一下这里的正确方向吗。。。 我在一个网站上有一个表单,我有一个控制器。我想做的是通过url使用jQuery发布表单,如下所示:Javascript 构建到MVC控制器的POST url,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,有人能给我指一下这里的正确方向吗。。。 我在一个网站上有一个表单,我有一个控制器。我想做的是通过url使用jQuery发布表单,如下所示: /localhost:1234/something?FirstLast=Somebody&Mail=something@something.com&Phone=something 这是控制器: [System.Web.Http.HttpPost] public HttpResponseMessage PostPodrskaRequest(s
/localhost:1234/something?FirstLast=Somebody&Mail=something@something.com&Phone=something
这是控制器:
[System.Web.Http.HttpPost]
public HttpResponseMessage PostPodrskaRequest(string ImePrezime, string Mail, string Telefon, int OdabranaUlogaId)
{
try
{
var r = new Regex(@"^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$");
if (string.IsNullOrEmpty(ImePrezime) || ImePrezime.Length > 128)
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Ime i prezime mora biti upisano i ne smije sadržavati više od 128 znakova!");
if (string.IsNullOrEmpty(Mail) || (!r.IsMatch(Mail)))
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Neispravna mail adresa!");
var cnt = this._podrskaService.GetPodrskaContent().First(x => x.Uloga.Id == OdabranaUlogaId);
this._podrskaService.InsertPodrskaRequest(ImePrezime, Mail, Telefon, cnt.Id, OdabranaUlogaId, this._services.WorkContext.CurrentUser.Id);
}
catch (Exception ex)
{
this.Logger.Log(LogLevel.Error, ex, "Handled exception!!!");
_transactionManager.Cancel();
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message, ex);
}
return Request.CreateResponse(HttpStatusCode.OK, "Zahtjev uspješno poslan.");
}
这是我的jQuery ajax函数:
function submitForm() {
var params = {
ImePrezime: $("#Forma").find('input[name="ImePrezime"]').val(),
Mail: $("#Forma").find('input[name="Mail"]').val(),
Telefon: $("#Forma").find('input[name="Telefon"]').val()
}
var str = param(params);
greska = 0;
$.ajax({
type: 'POST',
url: '@postUri',
data: str ,
success: function (response) {
alert("Prošlo!");
console.log("[OK] Poruka poslana na @postUri");
console.log("ImePrezime" + ImePrezime);
console.log("Mail" + Mail);
console.log("Telefon" + Telefon);
},
error: function () {
alert("Nije prošlo! :'( ");
console.log("[FAIL] Poruka poslana na @postUri");
console.log("ImePrezime" + ImePrezime);
console.log("Mail" + Mail);
console.log("Telefon" + Telefon);
}
});
}
我猜你把
GET
和POST
混在一起了。当您使用URL发送参数时,这是一个GET
请求。如果在正文中发送,则为POST
如果使用GET
,而服务器需要POST
,则永远无法通过该操作(例如,这是为了防止XSS/CSRF)
您必须使用而不是$。get
才能将其作为POST
请求
关于您的更新:您正在将一个方法传递到
数据中。这是不允许的。只需输入您的var参数
,您应该在调用$之前准备好它。ajax
我猜您将GET
与POST
混合在一起。当您使用URL发送参数时,这是一个GET
请求。如果在正文中发送,则为POST
如果使用GET
,而服务器需要POST
,则永远无法通过该操作(例如,这是为了防止XSS/CSRF)
您必须使用而不是$。get
才能将其作为POST
请求
关于您的更新:您正在将一个方法传递到数据中。这是不允许的。只需输入您的var参数
,您应该在调用$之前准备好它。ajax
我猜您将GET
与POST
混合在一起。当您使用URL发送参数时,这是一个GET
请求。如果在正文中发送,则为POST
如果使用GET
,而服务器需要POST
,则永远无法通过该操作(例如,这是为了防止XSS/CSRF)
您必须使用而不是$。get
才能将其作为POST
请求
关于您的更新:您正在将一个方法传递到数据中。这是不允许的。只需输入您的var参数
,您应该在调用$之前准备好它。ajax
我猜您将GET
与POST
混合在一起。当您使用URL发送参数时,这是一个GET
请求。如果在正文中发送,则为POST
如果使用GET
,而服务器需要POST
,则永远无法通过该操作(例如,这是为了防止XSS/CSRF)
您必须使用而不是$。get
才能将其作为POST
请求
关于您的更新:您正在将一个方法传递到数据中。这是不允许的。只需输入您的var参数
,在调用$之前您应该准备这些参数。ajax
为什么您一直在更改您的问题?你一直在否定我的答案…哦,对不起,我应该通过对你答案的评论来分享新代码吗?你为什么需要分享它?如果没有必要,就不要发布它。那么答案就足够了。如果答案没有帮助,请说明原因。回答者可能会问代码,但这通常是无休止讨论的开始。代码不起作用,试图找出原因。我的控制台显示ReferenceError:param未定义只需传入数据:params
。您为什么不断更改问题?你一直在否定我的答案…哦,对不起,我应该通过对你答案的评论来分享新代码吗?你为什么需要分享它?如果没有必要,就不要发布它。那么答案就足够了。如果答案没有帮助,请说明原因。回答者可能会问代码,但这通常是无休止讨论的开始。代码不起作用,试图找出原因。我的控制台显示ReferenceError:param未定义只需传入数据:params
。您为什么不断更改问题?你一直在否定我的答案…哦,对不起,我应该通过对你答案的评论来分享新代码吗?你为什么需要分享它?如果没有必要,就不要发布它。那么答案就足够了。如果答案没有帮助,请说明原因。回答者可能会问代码,但这通常是无休止讨论的开始。代码不起作用,试图找出原因。我的控制台显示ReferenceError:param未定义只需传入数据:params
。您为什么不断更改问题?你一直在否定我的答案…哦,对不起,我应该通过对你答案的评论来分享新代码吗?你为什么需要分享它?如果没有必要,就不要发布它。那么答案就足够了。如果答案没有帮助,请说明原因。回答者可能会问代码,但这通常是无休止讨论的开始。代码不起作用,试图找出原因。我的控制台显示ReferenceError:param未定义只需传入数据:params
。