当前位置: 首页 > 面试题库 >

使用JsonP的JavaScript XMLHttpRequest

东龙野
2023-03-14
问题内容

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

我已经知道跨脚本需要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如果需要,请使用。



 类似资料:
  • 本文向大家介绍浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用,包括了浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用的使用技巧和注意事项,需要的朋友参考一下 JSON和JSONP     JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,用于在浏览器和服务器之间交换信息。     JSONP(JSON With

  • 本文向大家介绍VUE2.0中Jsonp的使用方法,包括了VUE2.0中Jsonp的使用方法的使用技巧和注意事项,需要的朋友参考一下 本文主要介绍的是在VUE2.0Jsonp的使用方法,通过github引入jsonp和promise封装,实现跨域获取数据。 1.JSONP的用途和原理 使用JSONP主要是目的通过动态创建Script,动态拼接url,进而抓取数据,实现跨域。确切地说,AJAX请求由于

  • 问题内容: 我们有一个配置了SSL的网站,可托管WCF服务。服务的绑定具有,并且通信使用JSON序列化。 当我们从http请求此服务时,它返回JSONP,但是当使用HTTPS请求该服务时,它仅返回JSON。无论哪种方式我都需要JSONP,请帮忙。 当前配置是这样的: 问题答案: 如果使用此配置会发生什么: 问题是,如果要同时通过HTTP和HTTPS调用服务,则必须提供两个端点-一个端点用于HTTP

  • 本文向大家介绍java中的JSONP使用实例详解,包括了java中的JSONP使用实例详解的使用技巧和注意事项,需要的朋友参考一下  json和JSONP这二者在开发中还是很常见的,此处JSON暂且不说。 一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准,这就是为什么要使用JSONP的原因(由于Web页面

  • 问题内容: 我正在尝试使用加载外部页面,但是该页面是一个页面,我只想使用ajax来获取其内容。 编辑:之所以这样做,是因为我想在加载页面而不是我的服务器时传递所有用户信息,例如:标头,ip,代理。 这可行吗?现在,我可以获取页面,但是jsonp尝试解析json,并返回错误: 样例代码: 我已经建立了一个jsfiddle供人们测试:http : //jsfiddle.net/8A63A/1/ 问题答

  • 功能 jsonp的调用方法。 Official Usage $.jsonp( { url: "http://wqs.jd.com/xxx.jsonp", data:{ p1:"p1" }, jsonp: "callback", jsonpCallback: "halo_callback", callback: function(jso