【问题标题】:vue-resource and JSONP working examplevue-resource 和 JSONP 工作示例
【发布时间】:2016-12-08 10:14:50
【问题描述】:

我正在努力使用 vue-resource 发出 JSONP 请求。谁能提供一些工作示例来演示定义 jsonp 回调的正确方法,在 Vue 组件中处理调用等等。

谢谢

**编辑:**对于其他人,让我们稍微澄清一下情况。重点是什么 - 我在网站上有一个未经身份验证的用户,我想让他做一些需要身份验证的操作(例如创建帖子)。但是,在创建帖子的最后,我想向他展示登录模式窗口,让他使用社交 oAuth 提供程序登录,并在成功登录后,让帖子被批准等等。问题是这个从前端到不同域(社交提供者)的调用被阻止(CORS 问题),然后我尝试使用 JSONP 来克服障碍。尝试设置 JSONP 调用花费了我很多时间,最后我决定采用完全不同的方法:

在创建帖子的过程结束时,会创建一个 cookie,用于记录被中断的操作以及所有必要的详细信息。之后,将显示登录模式。整个登录过程是从服务器端完成的,最后,当用户身份被确认时,重定向到初始页面。进一步检查 cookie 并根据数据,中断的操作继续成功执行,因为用户现在已通过身份验证。

@bryceadams 再次感谢您的回答!

【问题讨论】:

    标签: jsonp vue-resource


    【解决方案1】:

    您如何在组件中处理它取决于您的实现,但通常在 method 中完成 - 就像您有一个表单,然后在提交表单时调用了一个发出 JSONP 请求的方法。

    这是一个调用示例。请注意,重要的部分是您设置回调的jsonp 选项。这可能会因您提出请求的位置而异。通常是callback,但在我的情况下,我正在使用MailChimp,它是c

    var options = {
        jsonp: 'c'
    }
    
    this.$http.jsonp('https://website.com', options).then(function(data){
        console.log(data.json());
    }, function(error) {
        // handle errors
    });
    

    【讨论】:

    • 感谢您的回答。我无法正确设置此 JSONP,或者至少在我的情况下无法成功使用它。我将编辑我的问题,试图解释解决方法。
    • 这对我有用,但我不得不将日志消息更改为 console.log(data.json()) 因为响应不存在。感谢您的帮助。
    猜你喜欢
    • 2017-05-10
    • 2015-04-12
    • 2015-07-06
    • 2013-08-02
    • 2014-05-28
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    相关资源
    最近更新 更多