冷水月凉 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条回答 默认 最新

  • Go 旅城通票 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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)