JSONP Help (No jQuery)
JSONP Help (No jQuery)
我在这里努力弄清楚如何做一个JSONP请求,但是我到处寻找参考资料都是jQuery示例。我可以阅读jQuery源代码,但我想要一个干净简单的例子。我正在为某些东西构建一个库,我不想包含 jQuery,所以请不要使用 jQuery $.getJSON
。我知道如何使用它。
我的服务器用content-type: application/json; charset=utf-8
MIME 吐出正常的callback({"foo":"bar"})
响应。
因此,如果我输入一个脚本标签,例如(使用Twitter,因为我知道他们的API有效):
<script src="http://twitter.com/users/oscargodson.json?callback=test"></script>
或动态。两者都有效,我得到了 JSON,这是我无法弄清楚的下一步。
如果我只是在脚本加载后console.log(test)
,我会得到:Uncaught ReferenceError: test is not defined
为什么?在我从服务器获得响应后,我如何将其传递给自己?在我自己的服务器上,如果我这样做callback = {"foo":"bar"}
回调工作并返回一个对象,但不是上面的方式。怎么来了?我只使用 AJAX 库来做到这一点,但对于这个项目,我需要自己编码:)
如果设置了"callback=test",那么在客户端代码中,您需要有一个名为"test"的函数,该函数从服务器获取json值并为您处理。
JQuery 就是这样做的,它有一个动态生成的函数名称。
function test(data) { console.log(data) }
get_jsonp("http://www.example.com/?callback=test")
一个简单的脚本包含应该可以完成这项工作:
function test(res) {
// TODO: manipulate the results here like for example showing
// the created_at property
alert(res.created_at);
}
window.onload = function() {
var script = document.createElement("script");
script.src = 'http://twitter.com/users/oscargodson.json?callback=test';
document.body.appendChild(script);
};
这是一个现场演示。
显然,您不应该忘记浏览器可能会缓存静态资源,例如脚本,因此,如果您想确保新鲜信息,则可以根据URL调整一些时间戳。
- Wordpress AJAX with raw javascript? NO Jquery
- 禁用复选框上的输入框 jquery NO onchange
- JavaScript 动态更改图像 src 的位置 - NO JQuery
- AngularJS - 在第一个可见元素上应用 CSS 类(Preferred No JQuery)
- jQuery Ajax得到错误No Transport,状态为0
- 通过将按钮id从Code-behind传递给Jquery Function,Set buttons display no
- JQuery 标识每个选择值为 No 的 Div
- IE8 & 9 - no jquery ajax response object
- onmouseover onmouseout fadeIn fadeOut no jQuery
- Javascript Simple Gallery (No JQuery)
- 匿名函数的调用(vanilla-js,pure-js,no-jquery)
- jQuery No Ui Slider,如何锁定多个互连的滑块以始终求和100
- 发布触发ajax请求的html表单NO JQuery
- jQuery .load() <img> no more in <a>
- 未定义ID/No操作Jquery
- 在FullCalendar jQuery插件的选定月份视图中检查IF NO事件
- 如何使用jQuery发送no-captcha (v2)值到另一个页面
- jQuery ajax - no jQuery css
- 我如何寻找和采取快照从时间戳存储在数组中的秒/ NO jQuery
- Jquery no冲突不起作用