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日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵