Vue-resource JSONP报错Uncaught (in promise)

前端使用Vue-resource JSONP跨域访问数据接口
network显示请求成功有数据,vue报错Uncaught (in promise)

clipboard.png

图片描述

阅读 8.4k
3 个回答

谢谢大家,没有完全理解jsonp,问题在接口没有实现对jsonp请求的包装
在这里提供一个网上找到的比较优雅的解决方案供大家参考,适用于flask
这种实现不需要对原有api接口做任何改动

"""
Taken from:  https://gist.github.com/1094140
"""

from functools import wraps
from flask import request, current_app


def jsonp(func):
    """Wraps JSONified output for JSONP requests."""
    @wraps(func)
    def decorated_function(*args, **kwargs):
        callback = request.args.get('callback', False)
        if callback:
            data = str(func(*args, **kwargs).data)
            content = str(callback) + '(' + data + ')'
            mimetype = 'application/javascript'
            return current_app.response_class(content, mimetype=mimetype)
        else:
            return func(*args, **kwargs)
    return decorated_function

jsonp需要服务端支持,并不是说用了jsonp就能把所有不支持跨域的请求变成可以跨域的。

你需要一个服务器环境,然后配置代理转发,你是用 vue-cli吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题