因此,我被要求创建某种Web服务,将javascript库(基于查询参数更改)返回到jsonp调用。 我试着写下一些脚本来做到这一点,看起来很可能也很简单。 现在的问题是,我读了很多关于jsonp的文章但是,为什么我不能做这样的事情呢?我能做些什么才能达到相同的结果而不是这样呢?
客户端示例:
var script = document.createElement('script');
script.src = '//my_url/testjsonp.php';
document.getElementsByTagName('head')[0].appendChild(script);
服务器示例:
echo 'var a = function(){ /* basically what i want here */ }()';
答案 0 :(得分:1)
有几个问题:
您正在创建全局a
变量。致电您服务的页面应该负责,所以除非您已a
配置,否则这是一个问题。
你的函数中的代码必须神奇地知道它应该对数据做什么。这与JSONP的观点相反,JSONP只是为了服务器返回数据并让客户决定如何处理它。
这两个原因是标准JSONP请求允许调用者指定回调名称(通常带有callback
参数,但名称不同)的原因
http://example.com/path/to/service?callback=foo
...标准的JSONP响应如下所示:
foo({/*...JSON here...*/});
这样,调用者定义了函数,该函数知道如何处理你传入它的数据。