使用jsonp访问跨域数据

时间:2011-04-01 09:52:05

标签: php jquery service jsonp

好吧,我正在尝试访问php web服务(返回jsonp和url格式为http://service.com/service.jsonp)。首先是它默默地失败了。所以,我尝试直接在Visual Studio和IE中调试以下代码。

<script type="text/javascript">
    $(document).ready(function () {
        $('#btnClick').click(function () {
            $.ajax({
                url: "http://url.jsonp",
                dataType: "jsonp",
                jsonp: "data",
                jsonpCallback: "jsonpcallback"
            });

            function jsonpcallback(data) {
                alert('doinng it now');
            }
        });
    });
</script>

单击后,数据进入VS(这是一个正确的jsonp输出),但VS会抛出错误。结果如下:

复制代码

data({"code":001,"msg":"true","data":{"obj1":"val1","obj2":"val2"}})

VS中的错误:Microsoft JScript运行时错误:“数据”未定义

1 个答案:

答案 0 :(得分:0)

看来,服务器的返回是错误的。给定jQuery参数,结果应该看起来像jsonpcallback({...})。你能检查一下,请求的URL是这样的:

 http://url.jsonp/?data=jsonpcallback

如果是,则服务器端执行错误并将GET参数名称与其值混合。