2013-03-20 3 views
0

Новичок для JQuery/JSON/AJAX, поэтому, пожалуйста, будьте милы.вопрос с отправкой ajax сообщение

Я собрал это произведение из примеров на SO и других сайтах, но я борется.

Я создал несколько функций для решения ответ AJAX ...

function newOrderSuccess(response) { ... } 
function newOrderTimeout() { ... } 
function newOrderFail() { ... } 

...

Вот AJAX вызов:

function sendCallAjaxUsingJson(theUrl, theData, successCallbackFunction, timeoutCallbackFunction, otherErrorCallback, timeoutValueMilli) 
{ 
var successFn = successCallbackFunction; 
var timeoutFn = timeoutCallbackFunction; 
var otherFn = otherErrorCallback; 
if(!(typeof successFn === 'function') || !(typeof timeoutFn === 'function') || !(typeof otherFn === 'function')) 
     return false; 
$.ajax({ 
     type: "POST", 
     url: theUrl, 
     timeout:timeoutValueMilli, 
     dataType: 'json', 
     data: { json: JSON.stringify(theData) }, 
     success:successFn(result), 
     error: function(x, t, m) { 
        if(t==="timeout") { 
         timeoutFn(); 
        } else { 
         otherFn(); 
        } 
       } 
    }); 

}

Мой код вызывает функцию следующим образом:

sendCallAjaxUsingJson("/ordertaker.php", 'submitOrder','newOrderSuccess', 'newOrderTimeout', 'newOrderFail',1000); 

В результате получается ..... ничего. Я добирался до функции newOrderFail(), прежде чем я загрузил файл ordertaker.php, но теперь ничего не получаю.

Где я ошибся?

+0

Пожалуйста, разместите ошибки на консоли браузера. Что такое 'sendCallAjaxUsingJson'? это должно быть 'doCallAjaxUsingJson'? –

+0

Что это такое? Вы видите исходящий звонок в fiddler/firebug? Или это никогда не инициализирует звонок? Если вы получаете сообщение об ошибке, это очень ценно. –

+0

@JacobParker Извините, я немного упростил код, чтобы вырезать соответствующие компоненты. это должно было быть doCallAjaxUsingJson, как вы сказали. Я обновил его. – NEW2WEB

ответ

1

Вы проезжаете строки в sendCallAjaxUsingJson вместо функций,

sendCallAjaxUsingJson("/ordertaker.php", 'submitOrder',newOrderSuccess, newOrderTimeout, newOrderFail,1000); 

Также вы звонящие ваша функцию успеха в вашем АЯКСЕ вызова, а что установка его.

success:successFn, 
+0

You указал на несколько пунктов, и это значительно меня приблизило. Теперь он работает для таймаута, но я не могу запустить функцию успеха. Теперь он просто запускает функцию сбоя (ошибки). Сценарий на сервере имеет только echo statement - так не должно ли это возвращать «успех»? – NEW2WEB

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