我正在尝试使用jquery post从本地json文件加载数据。但它不能为我工作,但是当我将$ .post()替换为$ .ajax()时,下面的代码相同。但我只想用jquery Post这个。我在控制台中收到(失败)net :: ERR_FILE_NOT_FOUND。
<!DOCTYPE html>
<html>
<head>
<script src="jquery-2.1.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#ajx").click(function(){
$.post({
type:"POST",
dataType:"JSON",
data:{},
url: 'ajax_info.json',
beforeSend:function(){
alert("before ajax");
},
success:function(data){
console.log(data);
},error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
});
});
</script>
</head>
<body>
<input type="button" id="ajx" value="Load File Content">
</body>
</html>
答案 0 :(得分:2)
$.ajax
相比, $.post
具有不同的参数结构,因为$.post
只是一个快捷方式而无需指定类型属性,因此$.post
和{{1不能直接互换。
最接近$.ajax
的等价物是:
$.post
正如您所看到的,$.post('ajax_info.json', {}, function(data){
console.log(data);
}, 'json')
.error(function(){
// handle erros
});
无法设置$.post
处理程序,因此它与您的beforeSend
版本在功能上并不相同。
答案 1 :(得分:0)
请注意正确的jquery.post语法
jQuery.post( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )
答案 2 :(得分:0)
尝试编写$ .post方法,如:
$.post( "ajax_info.json", function( data ) {
alert("success");
});
答案 3 :(得分:0)
$ .post是$ .ajax的简写 你可以像这样使用它
$("#ajx").click(function(){
$.post( "ajax_info.json", function( data ) {
//success
console.log(data);
})
.done(function() {
alert( "second success" );
})
.fail(function() {
//error handling here
alert( "error" );
})
.always(function() {
alert( "finished" );
});
});