2016-01-20 76 views
0

我有一个javascript函数,我想在我的服务器上重定向到php获取结果,然后如果该php文件返回true来完成该函数。我试过这个:在php中返回true,并在javascript中获取结果

if (window.location.href = "http://cosy.azurewebsites.net/servertest.php?u=" + Username + "&p=" + Password ==true) 
    { 
     alert ("it was true"); 

    } 

但是,只是返回false,不管我做什么。

当我到这里的PHP页面是我返回null并返回给javascript:

header("location:javascript://history.go(-1)?result=true/false"); 
      return true; 

      //header('Location:some_page.php?result=true/false'); 
      exit; 

我知道这是不是这样做的正确的方式,但我尝试了一些不同的事情这是我得到的!

+0

我想你需要的是[jQuery ajax调用](http://api.jquery.com/jquery.ajax/)。 –

+0

我不明白你需要什么,你可以编辑这个问题来澄清。也许@AuditeMarlow可以做到这一点。 – Hisham

+0

使ajax调用http://cosy.azurewebsites.net/servertest.php?u=“+用户名+”和p =“+密码,并发送来自服务器的真或假响应 –

回答

2
从我可以告诉你要火了使用Javascript到服务器的请求

所以,然后希望PHP对该请求做出反应并返回true,然后您的JS文件应对响应做出反应。

你将需要使用的是AJAX(异步Javascript和XML)请求。最简单的方法是使用JQuery,这也意味着它们可以为您处理跨浏览器的可比性。

你可以在这里找到的官方文档:http://api.jquery.com/jquery.ajax/

我会提供一个简单的例子,但我想你会用它自己的实验了解更多信息。

JS文件:

$.ajax({ 
    async: true, 
    url: 'end-point.com/servertest.php?u=' + Username, 
    dataType: 'json',  
    success: function (response) { 
     if (response.result === true) { 
      // Run your function. 
     } 
    }  
}); 

PHP文件:

<?php 

// Do whatever check you are doing, for the example i'll just return true. 
echo json_encode([result => true]); 

我建议研究到AJAX是个很方便的工具。

+0

这正是当我在javascript中调用它时,它会给我Uncaught ReferenceError:$未定义是否需要为ajax执行导入操作? –

+0

啊,JQuery是外部库,你可以下载并自行存储,也可以使用g oogle托管的库,通过使用以下''来包含库,知道这是来自这里:https://developers.google.com/speed/libraries/#jquery :) – Mikey

+0

这工作只是需要找出HTTP访问控制(CORS)的一部分,但欢呼 –

1

首先,我认为你需要的是一个jQuery ajax call,尽管你真正想要用你当前的描述来达到目的。

其次,您尝试从基本上只重定向到另一个页面的页面检索return值。

你可以做的是对你的PHP脚本运行ajax调用,并根据从脚本返回给JS的返回值做一些事情。例如:

在你servertest.php:

<?php 
    ... 

    die(json_encode(true)); 
?> 

在您的JS脚本:

$.ajax({ 
    url: 'path/to/servertest.php', 
    type: 'GET', 
    data: { 
     u: Username, 
     p: Password 
    }, 
    success: function (data) { 
     data = $.parseJSON(data); 

     if (data === true) { 
      alert('it was true'); 
     } 
    } 
}); 
+0

这正是我想要的感谢我会研究它当我在javascript中调用它时给我一个未捕获的ReferenceError:$没有定义是否需要为ajax进行导入? –

+0

在你能够使用任何jQuery之前,你需要包含jQuery库。在你的网站''并查看[jQuery文档](https://api.jquery.com/)。 –