如何将此jquery函数重写为常规javascript?
$(document).ready(function() {
$.ajax({
url: 'http://192.168.1.103:8124/',
dataType: "jsonp",
jsonpCallback: "_testcb",
cache: false,
timeout: 5000,
success: function(data) {
$("#test").append(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert('error ' + textStatus + " " + errorThrown);
}
});
});
特别
jsonpCallback: "_testcb",
cache: false,
原始错误的问题: 如何使用常规javascript设置xmlhttprequest对象的属性以接收JsonP回调?
更新了正确的问题: 如何使用"纯Javascript"?
制作JsonP回调答案 0 :(得分:3)
通过浏览器的网络开发者工具发送请求并查看其外观:
因此,为了模仿jQuery的反缓存行为,您可以在发送AJAX请求时向URL附加时间戳参数:
jsonp(url + '&_=' + (new Date).getTime());
对于JSONP回调,您只需传递callback
参数:
jsonp(url + '?callback=' + callback_name);
然后,浏览器基本上会调用eval(callback_name + '(' + response + ')');
,因此请确保您的回调函数是全局的。
答案 1 :(得分:0)
更新
经过一番挖掘后,我发现了post的等价物:
function foo(data)
{
// do stuff with JSON
}
var script = document.createElement('script');
script.src = '//example.com/path/to/jsonp?callback=foo'
document.getElementsByTagName('head')[0].appendChild(script);
// or document.head.appendChild(script) in modern browsers
像魅力一样!