Jsonp代理示例,发送请求到我们自己的站点而不是sencha站点

Posted

技术标签:

【中文标题】Jsonp代理示例,发送请求到我们自己的站点而不是sencha站点【英文标题】:Jsonp proxy Exampple, send request to our own site instead of sencha site 【发布时间】:2013-03-28 12:47:54 【问题描述】:

我正在设计一个 jsonp 示例,我想在其中调用某个不同的域,所以我调用的是http://www.walkingtree.in/forums/topics-browse-remote.php,而不是http://www.sencha.com/forum/topics-browse-remote.php。

两种情况下的数据都打印相同的格式,但是在执行时在控制台中遇到了一些错误

Uncaught SyntaxError: Unexpected token : topics-browse-remote.php:1, 但是没有这样的错误。

当我查看回复时,回复只有一个变化,即当我打电话给 sencha 论坛时,回复来自 Ext.data.JsonP.callback1(......)

在另一个论坛案例中,它就像这样.............

非常感谢任何帮助

【问题讨论】:

【参考方案1】:

我得到了解决方案。问题出在 php 文件中。在这种类型的请求中,通常一个 queryString 会带有回调,因此我们需要获取回调并将其附加到我们的响应中,以便响应正确到来。

Sample php code :
<? php
$callback = $_REQUEST['callback'];
$output = array('a'=>'any text', 'b'=>'some other Text');
if ($callback) 
    header('Content-Type: text/javascript');
    echo $callback . '(' . json_encode($output) . ');';
 else 
    header('Content-Type: application/x-json');
    echo json_encode($output);

?>

Thanks
Tapaswini

【讨论】:

以上是关于Jsonp代理示例,发送请求到我们自己的站点而不是sencha站点的主要内容,如果未能解决你的问题,请参考以下文章

HTTPS 到 HTTP JSONP 请求

HTTPS 到 HTTP JSONP 请求

初识jsonp

kickass.to 如何在我们自己的浏览器中发送远程 url/文件而不将我们发送到其他站点?

从 Javascript 调用 JSONP Ajax 回调

ajax 跨域