2015-11-25 1 views
1

Моя идея написать одностраничное веб-приложение с использованием jQuery и иметь серверную сторону в php, я хочу сделать это, не используя html-формы. До сих пор у меня есть этот new.php файл:Получение php-данных из jQuery ajax без форм html

<?php 
    echo "Welcome"; 
?> 

И JavaScript:

$(document).ready(function() { 
$.ajax({ 
    type: 'GET', 
    url: 'http://localhost/pmfServer/new.php', 

    success: function (data) { 
     alert('success' + data); 
    }, 
    error: function(jqXHR,error, errorThrown) { 

      alert("Something went wrong " + errorThrown); 

    } 
}); 
}); 

Предупреждение я получаю только "успех" с чем-то еще. У меня работает веб-сервер Apache, и когда я набираю тот же URL-адрес в веб-браузере, он говорит «добро пожаловать».

Это правильный способ сделать серверную часть, так как я не буду использовать формы? Должен ли я использовать некоторые рамки для этого?

+0

является первым блоком, 'new.php'? ? –

+0

Да, извините за это. Я редактировал. – Andrej

+0

Сам код в порядке, это определенно путь к файлу? –

ответ

1

Попробуйте это:

$(document).ready(function() { 
    $.ajax({ 
     type: 'GET', 
     url: 'http://localhost/pmfServer/new.php' 
    }).done(function(response){ 
     var response = $.trim(response); 
     alert(response); 
    }); 
}); 

Если вы все еще не получают никакого ответа от AJAX, пожалуйста, проверьте свой путь (URL: '....')

Также проверьте консоль на наличие ошибок ...

Последнее, что Ajax-файлы не всегда могут быть доступны непосредственно из браузеров ... Возможно, вы захотите защитить их (пока они будут доступны до xmlhttprequest:

<?php 

//protect the file from un-auth access 
define('AJAX_REQUEST', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); 
if(!AJAX_REQUEST) {die();} 

echo "Welcome"; 

?> 

Конечно, в вашей «Добро пожаловать» дело, что не может быть необходимым ... Я просто ссылаясь на более «чувствительных» Аякса файлов;)

0

Старые функции, которые я сделал, позволяют также сделать запрос AJAX к URL-адресу.

function Get(t,e,n){!function(){var s=new XMLHttpRequest;s.onreadystatechange=function(){4==s.readyState&&200==s.status?(e(s.responseText),s=void 0):s.status>=500&&(s=void 0,n(0))},t+=t.indexOf("?")>-1?"&tsmp="+Date.now():"?tsmp="+Date.now(),s.open("GET",t,!0),s.send()}()} 
function Post(t,e,n,o){!function(){var s=new XMLHttpRequest;s.onreadystatechange=function(){4==s.readyState&&200==s.status?(n(s.responseText),s=void 0):s.status>=500&&(s=void 0,o(0))},t+=t.indexOf("?")>-1?"&tsmp="+Date.now():"?tsmp="+Date.now(),s.open("POST",t,!0),s.setRequestHeader("Content-type","application/x-www-form-urlencoded"),s.send(e)}()} 

Это очень простой в использовании ... если вы хотите через JQuery:

Get("http://localhost/pmfServer/new.php",function(msg){alert(msg)},function(err){alert("Error")}) 

Это размещать данные и после того, как получим:

Post("http://example.com/yourtext.php","wow=1",function(msg){alert(msg)},function(err){alert("Error")}) 

если Также см в консоли нет ошибок. И ... Я рекомендую вам использовать encodeURIComponent при отправке некоторой строки с пользовательскими данными. encodeURIComponent("ÃÃO.. ! @ # $ % Ohh! & %><")

0

Убедитесь, что файл с расширением .html рядом. PHP и изменить URL в JavaScript коде на «new.php» в следующем

$(document).ready(function() { 
$.ajax({ 
    type: 'GET', 
    url: 'new.php', 
    success: function (data) { 
     alert('success' + data); 
    }, 
    error: function(jqXHR,error, errorThrown) { 
      alert("Something went wrong " + errorThrown); 
    } 
}); 
}); 

Я предлагаю использовать рамки для одного приложения страницы, такие как http://durandaljs.com/

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

  • Нет связанных вопросов^_^