我正在开发cakephp。 我开发了一个应用程序,我在所有ajax帖子中使用localhost并获得..
像
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;});
谢谢
答案 0 :(得分:0)
您知道localhost
几乎在任何情况下都会转换为127.0.0.1
。您是否确保将网络服务器设置为正确绑定到111.11.11.11
并提供相同的DocumentRoot?
通过IP调用服务器时,看起来没有得到JSON对象。
修改强>
我不知道您是否使用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,它为同一个DocumentRoot(您的HTML / PHP /任何文件所在的目录)提供localhost
以及您的机器所分配的任何其他IP。
答案 1 :(得分:0)
在这种情况下,肯定使用localhost更通用吗?
在我的CakePHP应用程序中,我使用:
'http://localhost/cakeapp/nodeDescriptors/ajaxSetStatus'
或
'/cakeapp/nodes/updateTreeNodes'
用于AJAX调用。 请记住,如果您尝试直接访问其他域,则会遇到问题。也许这就是你的基于IP的电话会发生什么?
答案 2 :(得分:0)
Localhost只能在您的本地计算机上运行,但请注意,您的应用程序最终将从外部访问,其中localhost将是客户端计算机..
如果对Intranet应用程序使用内部DNS,则需要指定公共IP地址或域名或网络名称。