使用JsonP的JavaScript XMLHttpRequest

我想将请求参数发送到其他域

我已经知道跨脚本需要JsonP,并且我已经将JsonP与Jquery ajax一起使用了

但我不知道如何使用XMLHttpRequest进行跨脚本

以下代码是我的基本XMLHttpRequest代码。

我想我需要修改xhr.setRequestHeader(),我必须添加解析代码

请给我任何想法

var xhr;

function createXMLHttpRequest(){

if(window.AtiveXObject){

xhr = new ActiveXObject("Microsoft.XMLHTTP");

}else{

xhr = new XMLHttpRequest();

}

var url = "http://www.helloword.com";

}

function openRequest(){

createXMLHttpRequest();

xhr.onreadystatechange = getdata;

xhr.open("POST",url,true);

xhr.setRequestHeader("Content-Type",'application/x-www-form-urlencoded');

xhr.send(data);

}

function getdata(){

if(xhr.readyState==4){

if(xhr.status==200){

var txt = xhr.responseText;

alert(txt);

}

}

}

回答:

JSONP不使用XMLHttpRequests。

使用JSONP的原因是为了克服XHR的跨域限制。

而是通过脚本检索数据。

function jsonp(url, callback) {

var callbackName = 'jsonp_callback_' + Math.round(100000 * Math.random());

window[callbackName] = function(data) {

delete window[callbackName];

document.body.removeChild(script);

callback(data);

};

var script = document.createElement('script');

script.src = url + (url.indexOf('?') >= 0 ? '&' : '?') + 'callback=' + callbackName;

document.body.appendChild(script);

}

jsonp('http://www.helloword.com', function(data) {

alert(data);

});

为简单起见,如果请求失败,则不包括错误处理。script.onerror如果需要,请使用。

以上是 使用JsonP的JavaScript XMLHttpRequest 的全部内容, 来源链接: utcz.com/qa/399242.html

回到顶部