2015-05-11 19 views
3

У меня сегодня очень простой! Я пытаюсь отправить сообщение из jQuery в файл PHP, размещенный на localhost.jQuery AJAX простой PHP Сообщение не работает

Мои JS:

$("#searchNameButton").click(function() { 
var name = $("#searchNameText").val(); 
$.ajax({ 
     type: 'POST', 
     url: 'localhost:8080/getNameInfo.php', // -> this works fine from the browser 
     // data: { name: name }, -> commented out 
     success: function(){ 
      alert('request successful'); 
     }, 
     error: function(xhr, textStatus, errorThrown){ 
      alert('request failed'); 
     } 
    }) 
}); 

Мой PHP файл (getNameInfo.php), базовый один для тестирования:

<?php 
    echo 'TEST'; 
?> 

В JQuery, он всегда будет приносить мне ошибки, говоря ' Внутренняя ошибка сервера'. Я использую Ripple Emulator, и это то, что появляется в консоли:

POST https://rippleapi.herokuapp.com/xhr_proxy?tinyhippos_apikey=ABC&tinyhippos_rurl=localhost%3A8080/getNameInfo.php 500 (Внутренняя ошибка сервера)

Я предполагаю, что он должен делать больше с этим, чем с тем, что написано в файлы. Любой совет? Благодаря!

EDIT: Найдено: LINK, но это не повлияет на мою проблему. Если я сделаю то, что здесь сказано, я не получу никакой ошибки («" вместо), но все равно не сработает.

EDIT 2: Если установить Междоменные прокси Локально в Ripple (который предлагается в приведенной выше ссылке) Я получаю

OPTIONS http://localhost:4400/ripple/xhr_proxy?tinyhippos_apikey=ABC&tinyhippos_rurl=http%3A//localhost%3A8080/getNameInfo.php сетка :: ERR_CONNECTION_REFUSED

EDIT 3: Изменен мой URL-адрес на местном уровне

C: // Mobile // Cross-Platf orm // TestApp // www // php // getNameInfo.php

и теперь он работает. Не знаю, как заставить его работать на localhost. BUt пойдет с этим сейчас, поскольку это всего лишь учебное приложение.

+0

Что 'ripplepi.herokuapp.com'? Я думаю, вам может понадобиться включить 'http: //' перед вашим URL-адресом. –

+0

Нет, не работает. Это призыв от Ripple Emulator. –

+0

Нет необходимости в localhost: 8080/getNameInfo.php просто дать простой getNameInfo.php, если обе страницы присутствуют в одном каталоге –

ответ

2

Добавление элемента управления доступом заголовка в верхней части getNameInfo.php файла:

header('Access-Control-Allow-Origin: *'); 
0

Итак, наконец, я нашел решение. Несмотря на то, что это не рекомендуется один, работает Chrome с

--disable-веб-безопасности

позволит мне вызвать PHP скрипт, размещенный на локальный: 8080 из локального хоста: 3000, где сохраняется эмулятор PhoneGap/Ripple Emulator.

+0

отключить безопасность в Интернете - это не очень хорошая идея. – Root125

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