所以我在HTML5画布中运行了一个小js程序,我的js中有一个小的http get请求函数。这个功能本身是有效的(在互联网上用很多例子对它进行了测试并且有效),但是当我发送请求时,我自己的网络服务器并没有返回正确的内容。
我的PHP看起来像这样:
<?php echo VVV::getUser()->userID ?>
当我在浏览器中打开它时,它会返回getUser() - &gt; userID返回的正确值。但是,当我从我的js发送一个Http请求时,它得到一个空的结果,但它在互联网上的各种测试页面上使用时都有效,所以它必须是我的PHP或我的服务器导致这个问题。任何想法?
答案 0 :(得分:0)
这听起来像是跨域AJAX请求问题。要解决这个问题,你真的只有两个选择:
让PHP发出跨域请求。因此,无论使用您的AJAX的任何网站都会向它自己的服务器发出请求(比如它自己的ajax.php脚本),然后向您的服务器发出请求,然后将其返回给客户端。
尝试将easyXDM JavaScript库用于跨域AJAX请求,看看是否有帮助。
答案 1 :(得分:0)
以下是一个简单的跨域请求(JSONP样式)的小样本:
1)在服务器端,将响应更改为:
<?php echo( 'callbackFunc(' . VVV::getUser()->userID . ');' ) ?>
2)在客户端做类似的事情:
function callbackFunc( userId )
{
// Do something with the userId
}
// Create a script tag which will load the call to the callback function
// with the user ID generated by the PHP code.
var s = document.createElement( "SCRIPT" );
s.src = "http://yourserver/yourpath/yourscript.php?maybesome=params";
document.body.appendChild( s );
从服务器加载的代码将使用用户ID调用callbackFunc()。