冷水月凉 2014-12-24 12:14 采纳率: 0%
浏览 4515

jsonp跨域访问Struts2后台,获取到的数据没有用callback参数包裹是怎么回事啊?

前端代码:

 $.ajax({
            url:'http://localhost:8080/OA/json/json.action?orgid=aaa&code=00002',
            dataType:'jsonp',
            type:"GET",
            dataFilter:function(json,me){
                alert("dataFiter:"+json);
            },
            contentType : "application/json-rpc",
            jsonpCallback : "call",
            success : function(response,status,xhr){
                alert(response);
            },
            error : function(xhr,errText,errStatus){
                alert("error");
            }
        });

后台配置:

 <package name="json" namespace="/json" extends="json-default">
        <action name="json" class="jsonTest" method="shareInfo">
            <interceptor-ref name="json"></interceptor-ref>
            <result type ="json" name="success">
                <param name="noCache">true</param>
                <param name="contentType">text/html</param>
            </result>
        </action>
    </package>

老是提示:Uncaught SyntaxError: Unexpected token :

从network中看到的response数据是json格式的,在线解析也成功了。

  • 写回答

1条回答 默认 最新

  • 斯洛文尼亚旅游 2015-01-04 01:21
    关注

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

    你配置的回调函数名称配置错了,是jsonp,不是jsonpCallback
    jsonpCallback : "call",
    ==>
    jsonp : "call",

    java就不懂了,jsonp你一定要获取到回调函数名称后输出类型 回调函数名称(数据),其他格式会出错

    评论

报告相同问题?

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 Ubuntu20.04无法连接GitHub
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥30 C++行情软件的tick数据如何高效的合成K线