Ajax get генерирует синтаксическую ошибку, когда вместо localhost указан ip - PullRequest
0 голосов
/ 01 июня 2010

Я работаю над CakePHP. Я разработал приложение, в котором я использовал localhost во всех сообщениях ajax и получаю ..

как

                  var ht = $.ajax({
                          type: "GET",
                          url: "http://localhost/FormBuilder/index.php/forms/getInvitees/<?php echo $emailid;?>",
                          async: false
                    }).responseText;


                     var myObject = eval('(' + ht + ')');

эта штука работает только когда я ставлю localhost. Но когда я изменяю это на мой Ip, как http://111.11.11.11/FormBuilder/index.php/forms/getInvitees/", тогда я получаю синтаксическую ошибку () в строке
var myObject = eval ('(' + ht + ')');

ПОЧЕМУ это происходит ?? Пожалуйста, дайте ценные предложения в решении этой проблемы.

Ответ для ht будет { "Приглашенных": [{ "приглашаемого": "23"}]} из которого я сгенерирую ссылку по

                     var data = myObject;
                 $.map(data.invitees, function(i){ 
                                 var id=i.invitee;

                        $("<a href=<?php echo $link?>/"+id+"/Invitee> <?php echo $link?>/"+id+"/Invitee</a>").appendTo("#"+inc);
                        inc++;                                 

                return i.invitee;});  

Спасибо

Ответы [ 3 ]

0 голосов
/ 01 июня 2010

Конечно, использование localhost является более общим в этом случае?

В своих приложениях CakePHP я использую:

'http://localhost/cakeapp/nodeDescriptors/ajaxSetStatus'

или

'/cakeapp/nodes/updateTreeNodes'

для вызовов AJAX. Помните, что у вас возникнут проблемы, если вы попытаетесь получить доступ к другому домену напрямую. Возможно, именно это происходит с вашим IP-вызовом?

0 голосов
/ 04 июня 2010

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

Вам необходимо указать общедоступный IP-адрес, имя домена или имя сети, если вы используете внутренний DNS для приложения в интрасети.


0 голосов
/ 01 июня 2010

Вы знаете, что localhost переводится как 127.0.0.1 практически в любом случае. Обязательно ли вы настроили свой веб-сервер для правильной привязки к 111.11.11.11 и обслуживания того же DocumentRoot?

Похоже, вы не получаете объект JSON при вызове сервера по IP.

EDIT

Я не знаю, используете ли вы VirtualHosts для настройки среды разработки, но так как вы используете localhost, я перейду к стандартному Apache httpd.conf.

В файле httpd.conf найдите строку, начинающуюся с Listen .... Убедитесь, что единственная строка с директивой Listen выглядит как Listen *:80, чтобы позволить Apache связывать себя с любым из IP-адресов, доступных на вашем компьютере.

Затем вставьте следующее в конец файла:

<VirtualHost *>
    ServerName myfoo.com
    ServerAdmin admin@myfoo.com
    DocumentRoot "C:/..path to your working directory/"        
</VirtualHost>

Теперь вы успешно внедрили VirtualHost, который обслуживает localhost и любой другой IP, назначенный вашей машине, из того же DocumentRoot (каталога, в котором находятся ваши HTML / PHP / любые файлы).

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...