Javascript 为什么location.reload()会破坏我的$.post?
我有一个select元素,当使用$.post进行更改时,它可以正常发布。但是如果我想重新加载页面,并添加一个location.reload,那么它不会发布。如果我删除了这条线,它就可以正常工作了。有什么想法吗Javascript 为什么location.reload()会破坏我的$.post?,javascript,jquery,Javascript,Jquery,我有一个select元素,当使用$.post进行更改时,它可以正常发布。但是如果我想重新加载页面,并添加一个location.reload,那么它不会发布。如果我删除了这条线,它就可以正常工作了。有什么想法吗 <script type="text/javascript"> $('#target').change(function() { $.post('<?=$base_url?>orders/create-ne
<script type="text/javascript">
$('#target').change(function() {
$.post('<?=$base_url?>orders/create-new/order-items/<?=$order_id?>/target',
{
use_sort_modifier: $('select#target').val(),
order_id: <?=$order_id?>
}
);
location.reload(); // Works without this line.
});
</script>
异步执行,因此在调用location.reload时实际上没有执行,因此它会被中断-您可以将一个成功回调传递给$.post,该回调在post成功完成后执行,并在那里执行重新加载。Ajax是异步的。你的重新装填在柱子有机会完成之前开火 在post的成功事件处理程序中重新加载:
$.post('<?=$base_url?>orders/create-new/order-items/<?=$order_id?>/target',
{
use_sort_modifier: $('select#target').val(),
order_id: <?=$order_id?>
},
function() { location.reload(); }
);
您需要在post的回调上执行location.reload,而不仅仅是在post代码之后 以下是一个例子:
$.ajax({
type: 'POST',
url: url,
data: data,
success: function() { location.reload() },
dataType: dataType
});
您需要将其放入$post代码中的success:part中。您也可以在ajax语句中放入async:false您应该在success回调中写入这一行。谢谢,工作非常顺利。我会尽快接受你的答复。谢谢。我使用的是.post而不是.ajax。