2013-09-05 2 views
1

Так что мой сайт отлично работает в прошлом году или около того, и части его перестали работать, когда я проверил его сегодня. Мне это показалось странным, так как я не изменил никакого кода.jQuery .load() перестает работать с параметром POST

После некоторого расследования, я думаю, что я приколол проблему до функции jQuery .load(). У меня есть что-то вроде следующего в файле с именем «debug.php»:

... 
<div id="testd"></div> 
<p id="mess"></p> 
... 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#testd").load("../scripts/debug_script.php", {varx: 10}, function() { 
      $("#mess").html("inside testd reached") 
     }); 
    }); 
</script> 

Файл debug_script.php просто:

<?php 
$x= $_POST["varx"]; 
echo "<p>x is $x</p>"; 
?> 

С кода выше, в файле debug.php, ничего не загружается в div «testd», но появляется сообщение в «mess».

Если я удаляю аргумент {varx: 10} в .load(), сообщение в "testd" отображается в порядке (без фактического значения x, очевидно).

Итак, похоже, что аргумент POST в .load как-то нарушает функцию. Даже когда я удаляю строку $x= $_POST["varx"]; в загружаемом файле php и имеет простое эхо, ничего не загружается, когда аргумент POST включен в .load().

Есть ли у кого-нибудь идеи относительно того, почему эта проблема возникает? Как я уже говорил ранее, эти вызовы .load() работали нормально на моем сайте до недавнего времени, и я ничего не изменил между тем, когда он работал, и когда он прекратил работать.

Я связываюсь с jQuery 1.7.2 от Google API (http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js), а мой хост - 000webhost.com. Возможно ли, что проблема связана с хостом? У меня нет локального сервера, поэтому все мои тесты были выполнены в прямом эфире, через 000webhost.

В любом случае, я был бы признателен за любые идеи, которые могут иметь люди. Просто дайте мне знать, может ли быть полезной информация с моего конца. Благодаря!

+0

Является ли ваша библиотека JQuery загружается с вашего сервера или он тянет из общественного канала? – SuperJer

+0

Он извлекается из общей ссылки: http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js – Marvin

+1

Код выглядит нормально (и вы сказали, что он работает), так что, возможно, хост изменил что-то. Возможно, проверьте журнал ошибок PHP? – Owlvark

ответ

0

Try посылая varx имя переменной в виде строки, например:

$("#testd").load("../scripts/debug_script.php", {'varx': 10}, function() { 
    $("#mess").html("inside testd reached") 
}); 
+0

Я пробовал это, но это все еще не сработало. Спасибо за предложение! – Marvin

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