2012-05-24 4 views
0

Я использую JQuery Ajax, чтобы получить какие-то данные, но это не удается, ниже коды:JQuery ошибка Аякса

$.Webpic_Init = function(){ 
     var type = 'default'; 
     $.ajax({ 
      url:SITE_PATH+"services/service.php?m=share&a=uploadwebpic&photo_type="+type, 
      type: "POST", 
      data:{ name: "John", location: "Boston" }, 
      cache:false, 
      dataType: "json", 
      success:function(result){ 
       alert(result); 
      }, 
      error:function(){ 
       alert('error'); 
      } 
     }); 
    } 

«ошибка» Это предупреждает. Но если я изменил параметр url на «SITE_PATH +» services/service.php «', было отправлено событие« success ». Итак, что я могу сделать, если я не хочу изменять параметр url?

+0

Это не работает. – hon

+0

Можете ли вы отслеживать запрос с помощью вкладки chrome network или вкладки Firebug net FF и проверять, что происходит неправильно, например код ответа и т. Д., Или предоставить общий URL-адрес, чтобы мы могли проверить, возможно ли это. –

+1

Каково значение SITE_PATH и находится ли он в том же домене, что и страница, на которой находится этот код? – Rob

ответ

0

Вы делаете запрос POST, все ваши поля должны быть в объекте данных, как вы сделали.

data:{ name: "John", location: "Boston" } 

Вы не должны помещать что-либо на адрес. Это для запроса GET.

+0

Кажется, мне нужно преобразовать массив php в json format.I сделал это в файле php: echo json_encode ($ _ POST); Оно работает. – hon

0

Подготовить / в url вместо добавления SITE_PATH. Это сделает URL-адрес относительно домена, то есть относительно www.your-domain.com/. Если services находится в пределах некоторой подпапки вы можете сделать это, как /sub_folder_name/services/your_path_continue

0
 var type = 'default'; 
     $.ajax({ 
      url: 'services/service.php', 
      type: "POST", dataType: "json", 
      data: { 'm': 'share', 'a': 'uploadwebpic', 'photo_type': type, 'typename': "John", 'location': "Boston" }, 
      //contentType: "application/json; charset=utf-8", 
      cache: false,   
      success: function (data) { 
       alert(result); 
      } 
     }); 
+0

ставится одна точка перерыва в service.php на почте? то видите, что он стреляет или нет. – Thulasiram

+0

url внутренний или внешний путь? – Thulasiram

0

просто предложение, попробуйте использовать $.ajaxSetup(), чтобы получить правильную ошибку, как это:

$(function() { 
    $.ajaxSetup({ 
     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); 
      } 
     } 
    }); 
}); 

Это поможет вам правильно обработать ошибку Ajax и получить точную ошибку, возникшую при выполнении вызова ajax.

Смежные вопросы