宝哥软件园

解决jQuery使用JSONP时产生的错误

编辑:宝哥软件园 来源:互联网 时间:2021-09-21

什么是域只是一个协议域名或一个地址端口,三者之间的任何区别都意味着它们不在同一个域中。跨域是指在一个域中访问另一个域的数据。

如果您只是加载另一个域的内容,而不访问其中的数据,例如使用iframe,那么跨域非常简单。但是如果需要从另一个域加载和使用这些数据,就会很麻烦。为了安全起见,浏览器对这种情况有严格的限制,需要在客户端和服务器端都做一些设置,才能实现跨域请求。

JSONP简介JSONP(带Padding的JSON)是一种常见的跨域方法,但只支持JS脚本和JSON格式的数据。顾名思义,JSONP是利用JSON作为垫片来实现跨域请求的技术手段。其基本原理是使用HTML脚本标签加载另一个域的JSON数据,加载后自动运行回调函数通知调用者。这个过程需要另一个域的服务器支持,所以这种方式的跨域实现不是任意的。

JQuery的支持JSONP的Ajax对象通过将crossDomain参数指定为true,将dataType参数指定为jsonp[1],或者使用简短形式:getJSON()方法[2],支持JSONP模式下的跨域请求。例如:

//将crossDomain和dataType参数设置为使用jsonp $。Ajax ({datatype:' jsonp ',URL : ' http://www.example.com/XXX', crossdomain 3360 true,data : } })。请求完成后,done(function(){//完成。//使用getjson $。getjson(' http://www.example.com/XXX? jsoncallback=?{//参数}、函数(){//请求完成时的处理函数});使用getJSON时,需要指定jsoncallback=?在参数中。这就是上面提到的回调函数,JQuery会自动将参数的问号部分替换为随机生成的值(回调函数名),从而形成jsoncallback=jQuery。

更多资讯
游戏推荐
更多+