2013-09-09 3 views
0

Я использую эту функцию JS общаются веб с Arduino сервера:Появилась новая версия JQuery вызывает неправильное AJAX обратного вызова

function requestAction(actionId) { 
     $.ajax({ 
     type: 'get', 
     //contentType: 'text/javascript', 
      url: "http://192.168.2.102/requestAction", 
      data: { "actionId" : actionId }, 
      success:function(json) { 
      jsonpRefPR(json); 
      }, 
      processData: false, 
      dataType: "jsonp", 
      jsonp: "callback", 
      jsonpCallback: "jsonpRefPR", 

     error:function() { 
     alert("An error ocurred while requestAction()!"); 
     } 
    }); 
} 

с v1.4.2 JQuery работает как шарм, и я следующий запрос url:

http://192.168.2.102/requestAction?callback=jsonpRefPR&actionId=0 

, который является тем, что ожидает Ардуино, поэтому все работает.

НО когда я использую новую JQuery v1.9.1, я получил следующий неправильный запрос URL:

http://192.168.2.102/requestAction?callback=jsonpRefPR&[object%20Object]&_=1378730663347 

так Arduino не «underestand» этот URL, и я получил сообщение об ошибке в Функция AJAX ...

Что случилось?

+1

удалить 'processData: false' –

+0

jQuery до 1.10.2 сейчас, кстати. – Blazemonger

ответ

2

Удалить параметр processData - он вам не нужен, и он предотвращает сериализацию data.

+0

я сделал, и я до сих пор получил ошибку, но на этот раз URL запроса выглядит следующим образом: [ссылка] http://192.168.2.102/requestAction?callback=jsonpRefPR&actionId=0&_=1378741541529 _ = 1378741541529 не должно быть там, как не должно выполняться обработчик ошибок ... – user2761467

+0

Я добавил: cache: true, и я получил стержень _ = 1378741541529 (это отметка времени), но он все еще запускает обработчик ошибок, почему ?!?! – user2761467