2016-10-28 1 views
1

Я написал jquery ajax с POST, но это не сработало. После нескольких часов поиска я узнал, что, изменив на GET, возможно, проблема будет решена. К счастью, это сработало, но до сих пор остается вопрос, почему POST не работает. Вот мой код:Почему мой jQuery ajax POST не работает, GET работает нормально?

<html> 
<head> 
    <title>Hello this is my title</title> 
    <script type = "text/javascript" 
      src = "jquery.js"></script> 

    <script> 
     $(document).ready(function() { 
      $("#driver").click(function(event){ 
       debugger; 
       $.ajax({ 
        type: "POST", 
        url: "login.php", 
        data: { name:"Zara" }, 
        dataType: "text", 
        success: function(data) { 
         $('#stage').html(data);}, 
        error: function(j,t,e) { 
         $('#stage').text('An error occurred= ' + j + " *** " + t + " *** " + e); 
        } 
       }); 
      }); 
     }); 
    </script> 
</head> 

<body> 

<p>Click on the button to load login.php file −</p> 

<div id = "stage" style = "background-color:wheat;"> 
    STAGE 
</div> 

<input type = "button" id = "driver" value = "Load Data" /> 

</body> 
</html> 

и это PHP код:


if(empty($_REQUEST['name'])) { 
    $_REQUEST['name'] = "Error"; 
} 

$name = $_REQUEST['name']; 
echo "Welcome ". $name; 

После выполнения этого кода он говорит: "не найден". Я обыскал всю веб-страницу, официальный сайт jquery и все подобные вопросы о stackoverflow, но ни один из них не работал для меня!

=========

редактировать

это запрос заголовок:


Host: localhost:63342 
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0 
Accept: text/plain, */*; q=0.01 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Content-Type: application/x-www-form-urlencoded; charset=UTF-8 
X-Requested-With: XMLHttpRequest 
Referer: http://localhost:63342/untitled2/index.php?_ijt=qgukfccd8om4ruh3e8fv7v8rds 
Content-Length: 9 
Cookie: Phpstorm-ed364c84=959e64e3-228a-4a78-904d-cc31d3f1a3e0 
Connection: keep-alive 

и это тело запроса:

name=Zara 

это ответ:

<!doctype html> 
<title>404 Not Found</title> 
<h1 style="text-align: center">404 Not Found</h1> 
<hr/><p style="text-align: center"> 
PhpStorm 2016.2.1</p> 
+0

Вы смотрели запрос/ответ AJAX в инструментах разработчика браузера? Включили ли вы библиотеку jQuery в проект? Есть ли сообщения об ошибках? Вы используете это на веб-сервере? –

+1

Если он говорит «не найден», то вы не предоставили нам код, который бы вызвал этот ответ. –

+0

Я не наблюдал ответ запроса в разработчиках браузера. да, я правильно включил, так как я сказал, что метод GET работает нормально. да, это говорит «Не найдено». нет, я запускаю его на своей локальной лаборатории. – Javad

ответ

1

запрос AJAX требует веб-сервер. Он не будет работать только на вашем локальном ноутбуке, что объясняет, почему POST ничего не делал.

Чтобы исправить это, вы можете установить веб-сервер с PHP на свой ноутбук. WAMP и XAMPP - это два пакета, которые приходят на ум.

+0

У меня установлен XAMP. – Javad

+1

вы все равно можете отправить POST в локальный файл. он просто ничего не сделает. и, конечно же, не будет производить 404. –

+0

Имея XAMPP, установленный и размещающий файлы там должным образом, есть и две разные вещи. Вам нужно открыть инструменты разработчика в своем браузере и посмотреть запрос/ответ на вызов AJAX. –

0

После попробовать это,

if(!isset($_POST['name'])) { 
     $_POST['name'] = "Error"; 
    } 

    $name = $_POST['name']; 
    echo "Welcome ". $name; 
+0

нет это не работает, к сожалению! – Javad

+0

Это явно говорит, что файл не найден. Попробуйте запустить код самостоятельно. Я имею в виду, запустите login.php прямо из браузера. посмотрим, что он покажет. –

0

после часов и часов изо всех сил я наконец-то узнал, что моя проблема. , поскольку вы, возможно, столкнулись с такими проблемами, у моей проблемы было очень простое решение, потому что я работал над PhpStorm, у меня был php, установленный из bitNami XAMP на phpstorm, поэтому мои php-скрипты работали нормально до Post-запроса, в котором он требует веб-сервера как Jay упомянул об этом:

Я скопировал свои файлы в папку XAMP, htdocs, и все прошло отлично.