首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery getJSON到外部getJSON页面

jQuery getJSON到外部getJSON页面
EN

Stack Overflow用户
提问于 2009-04-26 14:17:02
回答 3查看 27.4K关注 0票数 9

我一直试图向外部服务器发出AJAX请求。到目前为止,我已经了解到,出于安全原因,我需要使用getJSON来完成这个任务。

现在,我似乎不能简单地调用外部页面。我已经尽可能地简化了它,但是它仍然不起作用。我有两个文件,test.html & test.php

我的test.html打了一个这样的电话给本地主机进行测试:

代码语言:javascript
复制
    $.getJSON("http://localhost/OutVoice/services/test.php", function(json){
    alert("JSON Data: " + json);
});

我希望我的test.php返回一个简单的‘测试’:

代码语言:javascript
复制
$results = "test";
echo json_encode($results);

我可能犯了一个令人难以置信的新秀错误,但我似乎搞不明白。而且,如果这样做有效,我如何将数据发送到我的test.php页面,就像您喜欢test.php?id=15一样?

test.html页正在本地主机上调用test.php页面,与我没有任何错误的目录相同,只是没有警报。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-26 14:26:44

这可能是因为您在test.php中没有回调。而且,json_encode只接受一个数组:

代码语言:javascript
复制
$results = array("key" => "value");
echo $_GET['callback'] . '(' . json_encode($results) . ')';
// the callback stuff is only needed if you're requesting from different domains

jQuery在使用JSONP时自动切换到JSONP(即使用脚本标记而不是XMLHttpRequest)。如果在同一个域中有test.html和test.php,请尝试使用相对路径(而不是回调)。

票数 17
EN

Stack Overflow用户

发布于 2010-11-19 20:57:15

对莫夫的回答要小心。它有一个常见的XSS漏洞:http://www.metaltoad.com/blog/using-jsonp-safely

票数 15
EN

Stack Overflow用户

发布于 2012-04-06 20:45:16

最简单的解决方案是在任何输出之前将下面的代码添加到您的test.php文件中,这样您就可以更灵活地使用您使用的方法,标准的ajax调用应该可以工作。

代码语言:javascript
复制
header ('Access-Control-Allow-Origin: *');

但是,当您从无法控制的服务器获取数据时,请使用json回调。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/790910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档