qq_39974751 2022-03-01 00:54 采纳率: 100%
浏览 38
已结题

jquery jsonp跨域调用api,怎么修改为调用text格式返回值

业余的,请各位见谅。
如下代码,当前返回值是jsonp格式,已知api的url中删除format=jsonp参数即可获得text格式的返回值。想知道如何修改可以正常调用显示text格式的返回值?


 <html>
 <head>
      <title>jquery jsonp跨域调用api</title>
      <script src="https://static.3w.cn/static/home/js/jquery-3.2.1.min.js"></script>
      <script>
          $(document).ready(function () {
             $("#btn").click(function () {
                 longUrl = encodeURIComponent("http://www.baidu.com");
                 $.ajax({
                     url: "http://api.suowo.cn/api.htm?format=jsonp&url=" + longUrl + "&key=用户自己的key&expireDate=过期时间(如:2020-08-01)&domain=0",
                     type: "GET",
                     dataType: "jsonp", //指定服务器返回的数据类型
                     success: function (data) {
                         var result = JSON.stringify(data); //json对象转成字符串
                         $("#text").val(result);
                     }
                 });

             });
         });
     </script>
 </head>
 <body>
     <input id="btn" type="button" value="生成短网址" />
     <textarea id="text" style="width: 400px; height: 100px;"></textarea>
</body>
</html>
  • 写回答

2条回答 默认 最新

  • 关注

    不行,前端只有用jsonp格式请求的方法才能跨域请求, 你改用text格式是无法跨域请求的.
    因为用jsonp请求的方法是通过script标签让对方服务器返回xxxxxxxx({json对象数据});的js函数调用的代码来实现跨域请求的.
    你改用text格式就无法作为js代码执行所以出错
    你为什么要改用text格式, text格式的内容应该就在jsonp格式请求返回的json对象的属性中吧, 你取json对象的属性就好了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月9日
  • 已采纳回答 3月1日
  • 创建了问题 3月1日

悬赏问题

  • ¥20 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏