2

我对使用 jsonp 时的回调函数感到非常困惑

这是我的 json 格式的 js 文件 http://asla.dev.1over0.com/Guide/js/testjson.js

本质上就是这个json

{"x": 10, "y":15} 

这是我将要检索的数据 这是我的网站 客户想要从跨域 http://www.waveofcolor.com/faq.php的 js 文件中获取数据 以便我检索js 文件中的数据 我必须在脚本标签中包含 js 文件 http://asla.dev.1over0.com/Guide/js/testjson.js并声明一个函数来告诉页面如何处理这些数据这是代码

function func(json){
alert(json.x) 
}
<script type="text/javascript" src="http://asla.dev.1over0.com/Guide/js/testjson.js"></script>

我想这是我感到困惑的部分;到目前为止,我已经读到您几乎只需将查询字符串添加到您在脚本标记中调用的 js 文件的末尾

<script type="text/javascript" src="http://asla.dev.1over0.com/Guide/js/testjson.js"></script>

现在将是

<script type="text/javascript" src="http://asla.dev.1over0.com/Guide/js/testjson.js?jsonp=func"></script> 

我的问题是…… jsonp 怎么知道调用 func 函数?这需要在后端设置吗?如果是这样,如何使用 PHP 或 .NET 4.0 Framework 进行设置。如果我硬编码并像这样在 js 文件中调用 func 函数,我可以让 jsonp 工作

func({ "x": 10, "y": 15});

但是在 js 文件中调用实际的函数是没有意义的,对吧?

一如既往地感谢任何输入

4

1 回答 1

2

是的,你是对的。真正的 JSONP 需要后端支持。通常,您返回的 JSON 也是动态的。如果不是(每个人只共享一大块数据),硬编码函数名称(选择一个比 更好的名称func)是粗略但有效的。

如果您想要实际的 JSONP,有多种方法可以在后端进行。请参阅这个简单的PHP 示例这个关于 ASP.NET MVC 上 JSONP 的问题

于 2012-05-18T22:18:30.757 回答