Jquery帖子不工作?

时间:2014-05-22 07:53:58

标签: javascript jquery

我正在尝试使用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>

4 个答案:

答案 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 ] )

请参阅此http://api.jquery.com/jquery.post/

答案 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" );
        });
  });