2016-10-22 2 views
-2

Я знаю, что у меня будет много отрицательных моментов, но не могу описать это лучше.Ajax иногда не возвращается, даже есть выход

Существует URL: localhost/mycall.php

код PHP в этой конечной точке спит случайное число секунд, а затем возвращает данные в формате JSON.

Если я вызываю эту конечную точку напрямую через браузер, она всегда работает, однако, если я попытаюсь позвонить ей через AJAX в вызове document.ready, как показано ниже.

$.ajax({ 
    method: 'POST', 
    url: '/mycall.php?' + new Date().getTime() + Math.random(1, 99999), 
    data: dataToSend, 
    success: function(data) { 
     console.log('success'); 
     console.log(data); 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     console.log('error'); 
     console.log(textStatus); 
    }, 
    complete: function(jqXHR, textStatus) { 
     console.log('complete'); 
     console.log(textStatus); 
    } 
}); 

Он возвращается через некоторое время, но без данных, и ни один из обратных вызовов не запускается. Это происходит в Opera, Chrome, даже в новейшем Firefox. Почему это так?

Я забыл упомянуть, вывод имеет «Content-Type»: заголовки «text/plain; charset = utf-8», возможно, это проблема ...?

+1

Нам нужно увидеть код PHP –

+0

Javascript не позволяет вам делать ajax-запросы другому хосту, чем тот, с которого была получена текущая страница. Является ли страница, содержащая Javascript, в том же домене, что и PHP, или это только локальный файл? – Fraser

+0

И вы не получаете предупреждение о том же происшествии в консоли? – adeneo

ответ

1

Кажется, проблема с вашим url, может быть, вы не должны писать localhost?

1

Эта же вещь часто случается со мной. Но когда я вижу эту проблему, если я определяю форматирование данных, тогда проверка входящего ответа в правильном json formate. Затем после правильной кодировки json. проблема решает. Я не знаю, что на самом деле происходит с вами. Может быть, это было бы полезно для вас.

+0

Я забыл упомянуть, вывод имеет «Content-Type»: «text \/plain; charset = utf-8 «заголовки, возможно, это проблема ...? –

1

Вы должны указать свой адрес /. Без него это будет относиться как относительный путь.

+0

, конечно, я использую это и с относительным путем (/mycall.php) –

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