Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从远程API(我已构建)获取JSON字符串,以便在javascript可嵌入小部件(我正在尝试编写)中使用它_Javascript_Php_Json_Symfony_Widget - Fatal编程技术网

如何从远程API(我已构建)获取JSON字符串,以便在javascript可嵌入小部件(我正在尝试编写)中使用它

如何从远程API(我已构建)获取JSON字符串,以便在javascript可嵌入小部件(我正在尝试编写)中使用它,javascript,php,json,symfony,widget,Javascript,Php,Json,Symfony,Widget,我想编写一个简单的javascript可嵌入小部件,显示从我的应用程序API检索到的一些信息 我正在构建的API是用Symfony2编写的,我试图简单地获取生成的JSON字符串,并使用javascript将其显示在演示HTML页面中 为了获得JSON字符串,我尝试使用我找到的一些代码 我使用的完整Javascript代码如下所示: var request = new XMLHttpRequest(); request.onreadystatechange = function() { i

我想编写一个简单的javascript可嵌入小部件,显示从我的应用程序API检索到的一些信息

我正在构建的API是用Symfony2编写的,我试图简单地获取生成的JSON字符串,并使用javascript将其显示在演示HTML页面中

为了获得JSON字符串,我尝试使用我找到的一些代码

我使用的完整Javascript代码如下所示:

var request = new XMLHttpRequest();
request.onreadystatechange = function() {
    if (request.readyState === 4) {
        if (request.status === 200) {
            document.body.className = 'ok';
        } else {
            document.body.className = 'error';
        }
    }
};

var url = 'http://127.0.0.1:8000/widget/1';

request.open("GET", url, true);
request.send(null);

document.getElementById('demo').innerHTML = request;
HTML是一个简单的页面,如下所示:

<!DOCTYPE html>
<html lang="it">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <meta charset="UTF-8" />
        <meta name="generator" content="Aerendir's Hands" />
        <title>Widget demo page</title>
    </head>
    <body>
        <h1>Pagina demo del widget di TrustBack.Me</h1>
    <p id="demo"></p>
        <script src="widget.js"></script>
    </body>
</html>

小部件演示页面
Pagina demo del widget di TrustBack.我

当我打开时,Chrome控制台告诉我:

无法加载XMLHttpRequest。不 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,不允许访问源“”

我知道这是一种防止跨站点脚本编写的安全措施,但Facebook如何使用其小部件处理此类请求呢

幸运的是我正在使用and,所以这个问题马上就解决了!(我认为这是o.o.错误的原因)

如何从应用程序中获取JSON字符串以在javascript代码中使用它?

我非常擅长PHP和Symfony2,但我不懂JavaScript,这是我第一次尝试学习它

所以我希望这里的人能帮助我更好地理解小部件背后的机制

我读过很多关于如何在Stackoverflow和Internet上构建javascript小部件的帖子,但我找不到最新的东西:我找到的所有资源都是旧的(max 2012),我不确定它们是否有用或是否仍然相关

通常我会阅读一些文档来了解应该做什么,然后开始尝试,但在这种情况下,由于我之前不了解最佳实践,也不知道Javascript语言,所以我无法识别好的建议,也无法将当前的好建议与旧的和无用的建议区分开来

我知道Facebook使用iFrame,我的知识和理解到此为止

有人能让我朝着正确的方向去实现我的目标吗

我现在的目标是使用远程API返回的json字符串创建一个javascript变量。


提前谢谢你

允许您需要的域(或使用*允许所有域)正常工作<代码>$response->headers->set('Access-Control-Allow-Origin','*')。非常感谢。另外,如果我认为这不是实现我目标的最佳方式,那么目前我认为这已经足够了:这个解决方案不会让我感到真正的安全。o.o.用一些额外的信息将它写下来作为一个答案,也许是一个替代解决方案,比如向同一个域发出请求,然后从服务器到服务器再到另一个域。