jQuery Ajax Call没有调用成功

时间:2012-12-18 10:57:20

标签: jquery ajax json post

我遇到了ajax请求的问题。每当我运行以下内容时,我得到一个x(正如下面请求中的错误函数生成的那样)但是我应该得到刻度图像,因为我确认调用确实实际上在系统

任何人都可以帮我弄清楚我做错了吗?

Ajax Call:

$.ajax({
    url: "/URL",
    type: "POST",
    dataType: 'json',
    data: { action: 'assoc_users', username: 'testuser', name: 'testname' },
    success: function(){
    $("#user_1_image").attr("src","http://domain.com/check.png");
  },
    error: function(){
    $("#user1_status").html("x");
  }
}); 

将成为输出的数据:

{status: 'OK', payload: ''}

3 个答案:

答案 0 :(得分:1)

如果您从指定的URL获取有效的json,那么这将起作用,因为在您的代码中您没有在成功函数中传递数据:

$.ajax({
    url: "/URL",
    type: "POST",
    dataType:'json',
    data: { action: 'assoc_users', username: 'testuser', name: 'testname' },
    success: function(data){
      if(data){
        $("#user_1_image").attr("src","http://domain.com/check.png");
      }
    },
    error: function(){
       $("#user1_status").html("x");
    }
});

答案 1 :(得分:1)

你的json字符串中有一个Parse错误,请先检查你的json字符串

Parse error on line 1:
{    action: 'assoc_users
-----^
Expecting 'STRING', '}'

我已经纠正了你的json字符串并试了一下。试试这个有效,

$(document).ready(function() {
 var actions = { "action": "assoc_users", "username": "testuser", "name": "testname" };
    $.ajax({
    url: "/URL",
    type: "POST",
    data: actions,
    dataType: "json",
    success: function(data){
        alert('action'+data.action+'username'+data.username+'name'+data.name); // this is to check whats coming from the server side
        $("#user_1_image").attr("src","http://domain.com/check.png");
    },
    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);
            }
  }
}); 
});

在php文件中

<?php echo json_encode($_POST); ?>

答案 2 :(得分:0)

请使用它,可能引用了问题,所以试试吧。

$.ajax({
url: '/URL',
type: 'POST',
dataType: 'json',
data: { action: 'assoc_users', username: 'testuser', name: 'testname' },
success: function(){
$('#user_1_image').attr('src','http://domain.com/check.png');
},
error: function(){
$('#user1_status').html('x');
}
});