鍍金池/ 問答/HTML/ Vue-resource JSONP報錯Uncaught (in promise

Vue-resource JSONP報錯Uncaught (in promise)

前端使用Vue-resource JSONP跨域訪問數(shù)據(jù)接口
network顯示請求成功有數(shù)據(jù),vue報錯Uncaught (in promise)

clipboard.png

圖片描述

回答
編輯回答
小曖昧

jsonp需要服務(wù)端支持,并不是說用了jsonp就能把所有不支持跨域的請求變成可以跨域的。

2017年11月27日 19:00
編輯回答
拽很帥

你需要一個服務(wù)器環(huán)境,然后配置代理轉(zhuǎn)發(fā),你是用 vue-cli嗎?

2017年8月21日 10:55
編輯回答
笨尐豬

謝謝大家,沒有完全理解jsonp,問題在接口沒有實現(xiàn)對jsonp請求的包裝
在這里提供一個網(wǎng)上找到的比較優(yōu)雅的解決方案供大家參考,適用于flask
這種實現(xiàn)不需要對原有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
2018年5月16日 22:04