vue 交互 跨域获取数据

本文介绍如何利用Vue.js结合百度搜索API通过JSONP方式获取搜索建议,并展示了一个简单的示例应用,该应用通过按钮触发搜索请求并显示结果。

注意要引入vue-resource.js

<script src="js/vue-resource.js"></script>

1、打开百度

2、 F12   选择network  输入a

3、在3出(最后一个,就是最新的)右键    copy              copy link address

4、在记事本中粘贴得到

   

https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&json=1&p=3&
sid=26523_1460_25810_21112_26350_26578_20927&req=2&csor=1&cb=
jQuery11020731639176197594_1528852077791&_=1528852077794

   去掉部分无用数据,得到    https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a

?前面是我们要用的url  后面是对应的搜索的字段  a  

所以对应的代码块如上,jsonp=cb    是因为百度的callback是cb     

然后下面的两个函数是对应的请求成功和失败的函数,res是返回的信息,

res.data 是返回的数据

在浏览器地址访问https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a可以看到信息

所以我们的代码中的res.data.s    就是拿到s数组中的信息

运行后就可以看到,点击按钮弹窗

这样我们就通过百度拿到了相关信息

 

 

 

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
        <script src="js/vue-resource.js"></script>
        <script type="text/javascript">
            window.onload=function()
            {
                var vm=new Vue({
                    el:'#app',
                     data:{
                        },
                    methods:{
                        haha:function(){
                             this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',{
                              wd:'a'
                        },{
                            jsonp:'cb'
                        }).then(function(res){
                            alert(res.data.s);
                        },function(res){
                            alert(res.status);
                        });
                        }
                    }
                })
            }
        </script>
    </head>
    <body>
        <div id="app">
        <input type="button" value="按钮" @click="haha()" />
        </div>
    </body>
</html>

 

转载于:https://www.cnblogs.com/xiaoxiaoyao/p/9175260.html

### 如何在 Vue3 中处理请求 #### 使用 Axios 库发送 HTTP 请求并处理问题 Axios 是一个基于 Promise 的 HTTP 客户端,能够简化前端应用中的网络通信操作。为了使 Vue3 项目支持请求,在安装 Axios 后需对其进行适当配置。 对于全局引入 Axios 可以在 `main.js` 文件内完成: ```javascript import { createApp } from 'vue' import App from './App.vue' // 引入 axios 并挂载到 vue 实例上 import axios from 'axios' const app = createApp(App) app.config.globalProperties.$http = axios; app.mount('#app') ``` 当需要发起带凭证(如 Cookies 或 Authorization 头部)的站请求时,应设置 `withCredentials=true` 参数[^3];同时服务端也得允许接收此类携带认证信息的 CORS 请求。 另外一种方式是利用代理服务器或 API Gateway 来绕过浏览器同源策略限制。这种方式下实际调用的目标地址会被隐藏起来,并由中间件负责与外部资源交互。这不仅解决了难题还增加了安全性以及灵活性[^2]。 如果采用开发环境下的本地代理,则可以在项目的根目录创建或编辑 `vite.config.ts`(如果是 Vite 构建工具)文件加入如下代码片段实现简单的反向代理功能: ```typescript export default defineConfig({ server: { proxy: { '/api': { target: 'https://example.com', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ''), }, } } }) ``` 上述方法均有助于克服不同名间的数据交换障碍,具体选择取决于应用场景和个人偏好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值