精华内容
下载资源
问答
  • ajax jsonp
    2021-09-22 13:46:11

    ajax 方法

            $.ajax({

                type: "GET",

                async: false,

                url:  serverIp+"/cas/user/text",

                data: {},

                timeout: 5000,

                dataType: "jsonp",

                jsonp: "callback",

                jsonpCallback:"callbackFunction",

                success: function(json){}

                },

                error: function(XMLHttpRequest, textStatus, errorThrown){   }

                });

    后台方法1  直接返回直接进ajax error方法

    @RequestMapping(value = "getText001")
    @ResponseBody
    public String   getText001( HttpServletRequest request,  HttpServletResponse response ){
        response.setContentType("application/x-javascript");
        response.setCharacterEncoding("UTF-8");
        String callback = request.getParameter("callback");
        return  callback+ str;
    }
    

    ------------------------------------------------------------------------------------------------------------

    后台方法2 可以进入success方法

    @ResponseBody
    @RequestMapping(value = "/getText002",method = RequestMethod.GET)
    public void getText002(HttpServletRequest request ,HttpServletResponse response){
        String callback = request.getParameter("callback");
        callback = callback == null ? "" : callback;
        response.setContentType("application/x-javascript");
        response.setCharacterEncoding("UTF-8"); 
        try {
            java.io.PrintWriter out = response.getWriter();
            out.write( callback+ str);
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    写死的数据

    String str = "([{ code:'success',userType:'1'}]);"

    更多相关内容
  • PHP AJAX JSONP实现跨域请求使用范例
  • 使用ajax进行 JSONP跨域请求,因为被请求的对方的回调函数名称是无法修改。而这边页面中会出现多个不同JSONP请求,但他们的回调函数名称都是同一个,_Callback。想到设置AJAXJSONP参数。但是发现根本不起作用。...
  • Java Ajax jsonp 跨域请求

    2021-08-07 09:48:10
    一、什么是JSONP通常来讲...利用 元素的这个开放策略,网页能够获得从其余来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并非 JSON,而是任意的JavaScript,用 JavaScript 直译器...

    一、什么是JSONP

    通常来讲位于 server1.example.com 的网页没法与不是 server1.example.com的服务器沟通,而 HTML 的 元素是一个例外。利用 元素的这个开放策略,网页能够获得从其余来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并非 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。

    JSONP是一种协议,为了解决客户端请求服务器跨域的问题,可是并不是是正式的传输协议。该协议的一个要点就是容许用户传递一个callback参数给服务端,而后服务端返回数据时会将这个callback参数做为函数名来包裹住JSON数据,这样客户端就能够随意定制本身的函数来自动处理返回数据了.javascript

    二、Ajax 请求其余域接口

    我这个项目要请求另一个第一个后台接口请求数据,在页面渲染的时候,经过ajax加载数据以下:java

    $.ajax({

    url: 'http://www.xxx.cn/lalala?method=10082&page=1&pageSize=10',

    type: 'GET',

    dataType: 'json',

    timeout: 5000,

    contentType: 'application/json; charset=utf-8',

    success: function (result) {

    alter("aaaa");

    }

    });

    这样就出现跨域的错误,以下所示:jquery

    No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 500.ajax

    bVAioR

    这里就说明不容许跨域请求,那么怎么办? 换成jsonp好了。就改了dataType这个字段。json

    $.ajax({

    url: 'http://www.xxx.cn/lalala?method=10082&page=1&pageSize=10',

    type: 'GET',

    dataType: 'jsonp',

    timeout: 5000,

    contentType: 'application/json; charset=utf-8',

    success: function (result) {

    alter("aaaa");

    }

    });

    结果: Uncaught SyntaxError: Unexpected token!跨域

    what the fuck!bVAio1 明明请求回来数据,结果仍是报错。缘由是ajax请求服务器,而返回的数据格式不符合jsonp的返回格式,那么jsonp格式是什么样的?浏览器

    Callback({msg:'this is json data'})

    这是什么叼东西,奇葩谁定义的!若是你这么想,看来你没有仔细看第1点,JSON是一种轻量级的数据交换格式,像xml同样。JSONP是一种使用JSON数据的方式,返回的不是JSON对象,是包含JSON对象的javaScript脚本。可是上图是一段json串,因此报错啦。服务器

    三、参数返回处理

    有一点你会发如今你是用jsonp协议请求时,在参数中除了本身填写的参数外还有名为callback的参数,如图:

    bVAipbapp

    看看这个参数是什么东西,由于我在ajax请求的时候没有指定,jsonp这个参数,那么系统默认参数名为“callback”。没有指定jsonpCallback参数, 那么jquery会生成随机的函数名,如上图所示。函数

    好比我以下配置:

    $.ajax({

    url: 'http://www.xxx.cn/lalala?method=10082&page=1&pageSize=10',

    type: 'GET',

    dataType: 'jsonp',

    jsonp:'callbacka',//传递给请求处理程序或页面的,用以得到jsonp回调函数名的参数名(默认为:callback)

    jsonpCallback:"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名

    timeout: 5000,

    contentType: 'application/json; charset=utf-8',

    success: function (result) {

    alter("aaaa");

    }

    });

    那么服务器亦能够经过下面方法获取回调的函数名:

    string callbackFunName =request.getParameter("callbacka");//获取的就是success_jsonpCallback 字符串

    注意:系统会区分函数名大小写。

    bVAipB

    那么下面按照格式包装一下看看咯:

    String callback = request.getParameter("callback"); //不指定函数名默认 callback

    return callback+ "(" + jsonStr + ")"

    包了一下,结果然的不报错,看下返回数据以下图:

    bVAiqs

    四、JSONP的执行过程

    首先在客户端注册一个callback (如:'jsoncallback'), 而后把callback的名字(如:jsonp1236827957501)传给服务器。注意:服务端获得callback的数值后,要用jsonp1236827957501(......)把将要输出的json内容包括起来,此时,服务器生成 json 数据才能被客户端正确接收。

    而后,以 javascript 语法的方式,生成一个function, function 名字就是传递上来的参数 'jsoncallback'的值 jsonp1236827957501 .

    最后,将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时javascript文档数据,做为参数, 传入到了客户端预先定义好的 callback 函数(如上例中jquery $.ajax()方法封装的的success: function (json))里。

    展开全文
  • JSON和JSONP    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,用于在浏览器和服务器之间交换信息。... 出于安全考虑,脚本(AJAX)不能访问非本域的内容。但是,静态资源是不受域策略限制的,可
  • ajaxjsonp.js

    2019-07-25 10:53:59
    jQuery跨域访问,封装的ajax 代码,我使用的jQuery版本是1.11.3
  • 跨域请求之jQuery的ajax jsonp的使用解惑直接执行了error方法提示错误——ajax jsonp之前并没有用过,对其的理解为跟普通的ajax请求差不多,没有深入了解;出现了这种错误,几经调试(检查后台的代码和js部分的属性...

    跨域请求之jQuery的ajax jsonp的使用解惑

    直接执行了error方法提示错误——ajax jsonp之前并没有用过,对其的理解为跟普通的ajax请求差不多,没有深入了解;出现了这种错误,几经调试(检查后台的代码和js部分的属性设置)还是不行,让我感觉很是意外和不解。于是,决定仔细研究下ajax jsonp的使用,并将最后测试成功的学习经验和大家分享下!

    首先,贴出可以成功执行的代码:

    (页面部分)

    复制代码 代码如下:

    Untitled Page

    jQuery(document).ready(function(){

    $.ajax({

    type : "get",

    async:false,

    url : "ajax.ashx",

    dataType : "jsonp",

    jsonp: "callbackparam",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)

    jsonpCallback:"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名

    success : function(json){

    alert(json);

    alert(json[0].name);

    },

    error:function(){

    alert('fail');

    }

    });

    var a="firstName Brett";

    alert(a);

    });

    (处理程序部分)

    复制代码 代码如下:

    using System;

    using System.Web;

    public class ajax : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

    context.Response.ContentType = "text/plain";

    string callbackFunName = context.Request["callbackparam"];

    context.Response.Write(callbackFunName + "([ { name:\"John\"} ] )");

    }

    public bool IsReusable {

    get {

    return false;

    }

    }

    }

    (请求抓包截图)

    ajax请求参数说明:dataType String

    预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:

    "xml": 返回 XML 文档,可用 jQuery 处理。

    "html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。

    "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)

    "json": 返回 JSON 数据 。

    "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

    "text": 返回纯文本字符串

    jsonp String

    在一个jsonp请求中重写回调函数的名字。这个值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,比如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。

    jsonpCallback String

    为jsonp请求指定一个回调函数名。这个值将用来取代jQuery自动生成的随机函数名。这主要用来让jQuery生成度独特的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。你也可以在想让浏览器缓存GET请求的时候,指定这个回调函数名。

    ajax jsonp与普通的ajax请求的主要区别在于——请求响应结果的处理。如上面代码所示的响应结果为:

    success_jsonpCallback([ { name:"John"} ] ); ————其实就是,调用jsonp回调函数success_jsonpCallback,并将要响应的字符串或json传入此方法(作为参数值),其底层的实现,大概的猜想应该是:

    复制代码 代码如下:

    function success_jsonpCallback(data)

    {

    success(data);

    }

    经测试,ajax jsonp对同步或异步请求没有影响。 好了,如有解释不对或不完整的地方,希望大家见谅,欢迎留言、扔板砖!相关阅读:

    鼠标右击事件代码(asp.net后台)

    JSP中弹出面页刷新

    Oracle 9i在AIX上的性能调整──内存篇

    让图片垂直居中的使用方法

    DEDECMS实现禁止游客发表评论

    在SQL中使用convert函数进行日期的查询的代码

    JQuery 入门实例1

    Ubuntu6.06 Linux安装Mplayer过程解析

    Javascript流程混淆器JSCFO试用下载

    IIS管理脚本之adsutil.vbs的使用说明

    PDT与phpeclipse的比较

    纯语义化XHTML CSS设计表单方法

    使用JavaScript数组上的经验之谈

    JQuery魔力之$("tagName")与selector

    展开全文
  • 直接执行了error方法提示错误——ajax jsonp之前并没有用过,对其的理解为跟普通的ajax请求差不多,没有深入了解;出现了这种错误,几经调试(检查后台的代码和js部分的属性设置)还是不行,让我感觉很是意外和不解。...
  • 在前端通过 ajax 请求后台之后返回的时候,出现了...ajax 请求代码如下:function generate(url){$.ajax({type: "GET",url: url,dataType: "jsonp",timeout:5000,success: function(data){},error: function(XMLHtt...

    在前端通过 ajax 请求后台之后返回的时候,出现了下面的异常:

    textStatus:”parsererror”;

    ajax 请求代码如下:

    function generate(url){

    $.ajax({

    type: "GET",

    url: url,

    dataType: "jsonp",

    timeout:5000,

    success: function(data){

    },

    error: function(XMLHttpRequest, textStatus, errorThrown){

    }

    });

    }

    如果请求成功,返回的应该是一个回调函数:

    9e8fbf0831060f8c104caa12961a6e4b.png

    9be179662eeb63b9f9d7785a604daf58.png

    解决方法如下:

    b7b7644cbce3acc3f8cf4d2524518e4e.png

    总结以下几点:

    ajax 跨请求中,如果 data 为空,需使用

    data: {},

    ajax 跨域请求(jsonp)中,服务端返回数据格式必须是:

    myCallbackFunction({“id”:1,”name”:”C#”,”is_familiar”:true});

    请注意这个函数最后的分号”;”,必须加上,

    否则,如果同一个页面有多个 ajax 请求,并且在数据没有返回时,再发出其它 ajax 请求时,

    有可能出现 parsererror 出错提示。

    另外回调函数 jsonpCallback:’cb’ 要写上,不然也可能出现 parseerror 出错。

    【声明】:本博客仅为分享信息,不参与任何交易,也非中介,所有内容仅代表个人观点,均不作直接、间接、法定、约定的保证,读者购买风险自担。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。

    【关于安全】:任何 IDC 都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现,请保持良好的备份习惯。

    展开全文
  • 什么是跨域? 简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他服务器上的数据,即“同源策略”。而跨域就是通过某些手段来绕过同源策略限制,实现不同服务器之间通信的效果。...
  • 本篇文章主要介绍了详解Java Ajax jsonp 跨域请求,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • ajax jsonp跨域传参

    2014-05-13 09:43:34
    ajax jsonp跨域传参,里面有源码,不过写在txt中了,很适合调用别人的接口
  • 今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友
  • jsonp 解决的是跨域 ajax 调用的问题。为什么要跨域 ajax 调用呢?这样可以在一个应用中直接在前端通过 js 调用另外一个应用(在不同的域名下)的 API。我们在实际应用中也用到了 jsonp ,但之前只知道 jsonp 的一个...
  • jsonp 请求的回调参数名称附加到 url jsonpParam 细绳 jsonp 请求的回调参数名称附加到 url 呼叫数据 功能 数据源的自定义函数,参数: (req: url 过滤 属性项 细绳 使用的 json 属性包含数据项 属性位置 细绳 ...
  • 对jQuery ajax jsonp的理解和使用实例

    千次阅读 2017-12-21 10:09:55
    在total_tendency( )这个函数里的ajax中我使用的ajax里可以看到,所有加了注释的地方都是与普通ajax传json数据不一样的地方。 只有这些不同吗?当然不是的,网上很多都说ajax和jsop不能归结为一种东西,事实上也...
  • $.ajax({ type: "GET", url: "http://love.com/Test.php", dataType: "jsonp", // jsonp:"somfun", success:function(msg){ console.log(msg.msg); }, error:...
  • ajax jsonp get和post请求

    千次阅读 2018-09-20 10:39:47
    准备用ajax请求后台数据,但是发现一直请求失败。最后发现原因是,后台返回的json必须通过回调才行。 1,get请求 $.ajax({  type:"GET",  url:"http://192.168.1.117/test.php",  dataType:&...
  • html通过 ajax jsonp跨域请求接收和传送数据 使用HTML页面与后台跨域交互,获得后台数据或传输数据给后台
  • jquery的ajax访问后台代码,返回jsonp类型的数据,并应用案例。
  • JSON和JSONP  JSONP和JSON好像啊,他们之间有什么联系吗?  JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。对于JSON大家应该是很了解了吧,不是很清楚的朋友可以去json.org上了解下,简单易懂。 ...
  • 不清楚jsonp是什么的请自己搜索实例1test.htmltestajax.js$.ajax({type : "post",url : "ajax.php",dataType : "jsonp",jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:...
  • $.ajax jsonp parsererror

    2017-06-08 15:19:00
    $.ajax() 发起的跨越请求代码如下: $.ajax({ dataType: "JSONP", type: "GET", url: "http://...", data: {}, success: function(data, textStatus){ // 这里什么都没处理,写了也没反应. }, error: ...
  • miniAjax一个迷你Ajax库为简单的Web应用程序提供了Ajaxjsonp和ready特性
  • 前言:ajaxjsonp可以与后台通信,获取数据和信息,但是又不用刷新整个页面,实现页面的局部刷新。 一、ajax •定义:一种发送http请求与后台进行异步通讯的技术。 •原理:实例化xmlhttp对象,使用此对象与后台...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,807
精华内容 22,722
关键字:

ajax jsonp