当用户点击链接时,我需要触发JQuery方法,并调用位于/Project/Send/SendMethod
的Web服务。当我点击send
链接时,该方法被触发,我知道这一点,因为警报正在显示。但问题是如何调用webservice。如果它是POST
方法,那就太好了。
<a href='' id='2' class='send'> Send </a>
Jquery方法
$(function () {
$('.send').click(function () {
alert(this.id);
});
});
答案 0 :(得分:1)
使用$.ajax()
方法并指定网址和选项,例如jQuery Ajax
$(function() {
$('.send').click(function (e) {
e.prevenDefault();
$.ajax({
url: "Project/Send/SendMethod",
type: "POST",
data: values,
success: function(){
alert("success");
$("#result").html('submitted successfully');
}
});
});
});
答案 1 :(得分:1)
使用jQuery $.post
:
$(function () {
$('.send').click(function () {
alert(this.id);
$.post(url, {'id':this.id}, function (response) {
//do the result oriented activities
});
});
});
答案 2 :(得分:1)
您可以在jQuery中使用$.ajax()
api。此外,您必须防止隐藏链接中的默认行为。否则,您将更改页面而不是发送ajax requset。
$('.send').click(function (event) {
event.preventDefault();
$.ajax( {
url:"Project/Send/SendMethod",
type: "POST",
data: { "id": this.id },
success:function(data) {
alert(data);
}
});
});
如果你使用的是jQuery 1.8+,那么从jQuery 1.8开始就不推荐使用“success”回调。你应该使用“完成”http://api.jquery.com/deferred.done/
$('.send').click(function (event) {
event.preventDefault();
$.ajax( {
url:"Project/Send/SendMethod",
type: "POST",
data: { "id": this.id }
}).done(function( data) {
alert(data);
});
});
答案 3 :(得分:0)
我使用jQuery的ajax()
功能(并经常这样做)。
以下示例假设您将获得JSON格式的响应。如果您要返回完整的HTML页面,可以更改此内容...请查看http://api.jquery.com/jQuery.ajax/了解详情。
$(function () {
$('.send').click(function (e) {
e.stopPropagation();
e.preventDefault();
var thisId = $(this).attr('id');
alert(thisId);
var hostAndPort = window.location.protocol + "//" + window.location.hostname + ":" + window.location.port; // current page and protocol (http or https)
var requestUrl = hostAndPort + "/Project/Send/SendMethod/";
var str_address = requestUrl + 'id?=' + thisId;
$.ajax({
url: str_address,
contentType: 'application/json',
dataType: 'JSON',
type: 'POST',
success: function (response) {
console.log(response);
// do something...
},
error: function (e) {
// handle error
}
});
});
});