2017-04-01 121 views
0

我在我的Windows 10开发机器上使用xampp,当我使用chrome启动我的JavaScript应用程序时,浏览器使用localhost:8080作为根目录。ajax调用php不工作404错误不匹配localhost

对于我的php ajax调用,我必须使用完全合格的路径来让他们工作。例如:

$.ajax({ 
     type: "GET", 
     dataType: "json", 
     url: "http://localhost/get_user.php", 
     data: {email: $("#email").val()} 
    }); 

请注意,我必须使用localhost为Ajax调用,而JavaScript的根localhost:8080。我的php文件本地存储在c:/xampp/htdocs

我想使用一个简短的表单url,它既适用于我的本地开发机器,也适用于生产网站。像

$.ajax({ 
     type: "GET", 
     dataType: "json", 
     url: "/get_user.php", 
     data: {email: $("#email").val()} 
    }); 

我的理解的东西(我是新来的这)是,如果我使用简写形式的URL /get_user.php系统使用相同的根在客户端应用程序(即http://localhost:8080/get_user.php)。但只有完全合格的http://localhost/get_user.php正在为我的ajax调用工作。

我使用短形式/get_user.php时得到以下错误消息:

GET http://localhost:8080/check_login.php?password=xxxxxxxxxx&email=drew%40aol.com 404(未找到)

所以在客户端使用localhost:8080和服务器侧期望localhost 。我确信这可能是一个xampp配置问题,但一直无法自己解决。任何洞察力将不胜感激。

回答

0

尝试将您的数据类型更改为jsonp而不是json。我认为你正在遇到一个跨源的资源共享问题。本质上是一个许可问题。就您的浏览器而言,localhost和localhost:8080是两个不同的域。如果你的代码是从localhost:8080执行的,你给它一个相对的URL,比如/something.php,它假定你是从同一个域请求它的。 localhost相当于localhost:80。