我试图使用jquery ajax或jquery post
使用javascript获取数据
$.post("https://members.myactivesg.com/facilities/quick-booking?activity_filter=18&venue_filter=296&date_filter=Wed,%205%20Aug%202015", function(data) {
debugger;
})
.fail(function(xhr, textStatus, errorThrown) {
debugger;
});
然而,它不起作用。但jquery表单提交正在起作用。
var form =
'<form action="https://members.myactivesg.com/facilities/quick-booking" method="post" class="formfilter" id="formQuickBookSearch">' +
'<input type="hidden" name="activity_filter" value="18">' +
'<input type="hidden" name="venue_filter" value="296">' +
'<input type="hidden" name="date_filter" value="Fri, 7 Aug 2015">' +
'</form>'
$(form).submit();
服务器返回状态码400.
答案 0 :(得分:3)
您没有在Ajax调用中发表真实帖子。您不应该使用查询字符串来传递数据。在jQuery的post方法中使用data参数。
$.post( "https://members.myactivesg.com/facilities/quick-booking", {"activity_filter":18, "venue_filter" : 296, "date_filter":"Wed, 5 Aug 2015"}, function(data) {
debugger;
})
.fail(function(xhr, textStatus, errorThrown) {
debugger;
});
答案 1 :(得分:1)
您正在使用的URL等同于GET请求。例如。 //site.com/?foo=bar
jQuery.post()使用data
参数传递POST值。
我建议只使用jQuery.ajax(),因为它可以让您更好地控制和理解。
$.ajax({
type: "POST", // Request type.
url: url, // https://members.myactivesg.com/facilities/quick-booking
data: data, // Your values as associative array.
success: success, // Success callback.
dataType: dataType // Expected response type.
});
答案 2 :(得分:0)
这是另一种方法,完整的例子:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
function getMessageBoxData (queryType) {
function url_redirect(options){
var $form = $("<form />");
$form.attr("action",options.url);
$form.attr("method",options.method);
for (var data in options.data)
$form.append('<input type="hidden" name="'+data+'" value="'+options.data[data]+'" />');
$("body").append($form);
$form.submit();
}
$(function(){
/*jquery statements */
url_redirect({url: "messageBoard.php",
method: "post",
data: {"queryType": "select"}
});
});
}
</script>
<button onclick='getMessageBoxData()'>Click to getMessageBoxData</button>