syyzz3 2015-04-25 08:45 采纳率: 57.1%
浏览 2273
已采纳

使用jsonp完成跨域请求,但是请求的链接是js文件,请求总是那个js报错,怎莫办?

把链接换成php就没问题。

    $.ajax({
        type:'GET',
        async:false,
        url:"http://app.veishu.com/jsonp/categories/all.js",
        dataType:"jsonp",
        success:function(data){
            alert("success");
   //         alert(data[0]);
   //         var dataHtml=""
   //         for(var i=0; data.length;i++){
   //             dataHtml+="<li><a href='#' id=''></a></li>";
            }
            $(".list").html(dataHtml);

        },
        error:function(){
            alert("ajax is error");
        }
    });
    这个ajax不会进入error,也没有进入success。
    在那个链接的js那报错。
    如果把链接换成php会成功进入success。
    但这个js文件的链接直接在浏览器打开也没有问题,可以出现json。不知怎么回事?
    还有浏览器打开js文件有unicode字符,该怎么转![图片说明](https://img-ask.csdn.net/upload/201504/25/1429951452_561399.png)
  • 写回答

3条回答 默认 最新

  • Go 旅城通票 2015-04-25 10:44
    关注

    你的这个地址又不支持jsonp,jsonp是一段可以执行的js代码。。你的这个地址只返回数据,应该也是跨域的,无法获取这种数据。

    如果这个地址是你的,你应该输出类似

     mycallback({"success":true,"data":[{"name":"\u624b\u5de5DIY","position":0,"slug":"handicraft"},{"name":"\u8fd0\u52a8\u5065\u8eab","position":0,"slug":"sport"},{"name":"\u751f\u6d3b\u5bb6\u5c45","position":0,"slug":"life"},{"name":"\u6587\u5316\u6559\u80b2","position":0,"slug":"cultural"},{"name":"\u624d\u827a\u5a31\u4e50","position":0,"slug":"entertainment"},{"name":"\u7f8e\u5986\u9020\u578b","position":0,"slug":"dress-up"},{"name":"\u996e\u98df\u5065\u5eb7","position":0,"slug":"healthy-diet"},{"name":"\u5b55\u5987\u80b2\u513f","position":0,"slug":"pregnant-parenting"},{"name":"\u517b\u751f\u4fdd\u5065","position":0,"slug":"health-preserving"}]})
    

    的代码,mycallback回调函数你自己再你的html页面写好。。如果你的all.js是重写过的,可以$_GET["callback"]得到jquery注册的回调函数

    
    $_GET["callback"]."(你的那串json数据)";
    

    如果你不能控制,你只能在你站点做代理了,用curl获取远程输出数据,ajax请求你的这个代理php页面

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题