在使用jsonp
时,我对回调函数非常困惑这是我的json格式的js文件 http://asla.dev.1over0.com/Guide/js/testjson.js
基本上就是这个json
{"x": 10, "y":15}
这是我要检索的数据 这是我的网站客户谁想要从跨域的js文件中获取数据 http://www.waveofcolor.com/faq.php 为了让我在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文件中调用实际函数没有意义吗?
一如既往地赞赏任何输入
答案 0 :(得分:2)
是的,你是对的。真正的JSONP需要后端支持。通常,您返回的JSON也是动态的。如果不是(每个人只共享一个数据块),对函数名称进行硬编码(选择比func
更好的一个)是粗略但有效的。
如果您想要实际的JSONP,可以通过各种方式在后端执行此操作。请参阅ASP.NET MVC上关于JSONP的这个简单的PHP example和this question