api - 为什么我无法获取此 API
问题描述
我正在开发这个东西以获得设定值。我已经准备好所有代码,我只需要这种方式将值带到前端。然而,获取给我带来了麻烦。
我正在尝试使用 VUE JS 获取 API,但即使 API(Python Flask)响应正确,获取也会失败。
该 API 在邮递员中运行良好。它也有交叉引用。并且这些消息没有给我任何错误,只是“获取失败”并且没有响应或返回它需要返回的值。
这是页面代码。
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
<!-- JS, Popper.js, and jQuery -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
{% extends 'base.html' %}
{% block title %}Home{% endblock %}
{% block content %}
{% if user.is_authenticated %}
<div id="consultaCEP">
<div class="container-fluid p-3 my-3 bg-dark text-white">
Olá {{ user.username }}! Aqui estão os logs de pesquisas:
<table class="table table-bordered table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">CEP Pesquisado</th>
<th scope="col">Endereço</th>
<th scope="col">Cidade/Estado</th>
<th scope="col">Info</th>
<th scope="col">Hora Pesquisa</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
</tbody>
</table>
<div class="d-flex justify-content-center"><h2>
Pesquise o CEP se desejar!
</h2></div>
<div class="d-flex justify-content-center">
<div class="p-2">
<p>CEP: </p>
</div>
<div class="p-1"><input type="text"></div>
<div class="p-1"><a href=""><button>Consultar Correios</button></a></div>
<div class="p-1"><a href=""><button>Consultar Banco</button></a></div>
</div>
<p><a href="{% url 'logout' %}"><button class="button ">Sair</button></a></p>
<p><a href="{% url 'password_reset' %}"><button class="button">Resetar senha</button></a></p>
</div>
</div>
{% else %}
<div id="consultaCEP">
<div class="container-fluid p-3 my-3 bg-dark text-white">
<p></p>
<p>Clique a baixo para entrar como ADMIN</p>
<a href="{% url 'login' %}"><button class="button">Entrar</button></a>
<div class = "row"><p class="text-center ">Caso prefira apenas consultar o CEP use a função abaixo:</p></div>
<h1 class="d-flex justify-content-center">CONSULTA DE CEP:</h1>
<div class="d-flex justify-content-center">
<div class="p-2">
<p>CEP: </p>
</div>
<div class="p-1"><input type="text" id="cep_input" name="cep" @keyup.enter="sendCEPLocal"/></div>
<div class="p-1"><a href=""><button>Consultar Correios</button></a></div>
<div class="p-1"><a href=""><button @click="sendCEPLocal">Consultar Banco</button></a></div>
</div>
<div class="response">
<table class="table table-bordered table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">CEP</th>
<th scope="col">Endereço</th>
<th scope="col">Cidade/Estado</th>
<th scope="col">Info</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<script>
var Vue = new Vue({
el: '#consultaCEP',
data: {
cep: ($('#cep_input').val()),
info:{},
infoPT:{},
infoEN:{}
},
methods:{
sendCEPLocal: function()
{
console.log(this.cep)
console.log($('#cep_input').val())
const requestOptions = {method: "POST",
headers: { "Content-Type": "application/json", },
body: JSON.stringify({ cep: $('#cep_input').val() })
};
fetch("http://127.0.0.1:5000/cep/local/", requestOptions)
.then(response => {
console.log(response)
})
}
},
beforeMount(){
}
});
</script>
{% endif %}
{% endblock %}
它应该使用 JSON 向服务器发送一个值,然后接收答案。为什么我不能取到它?
Edit1:这是所要求的 Flask 代码。
总体而言,这是一个非常简单的代码。
import flask
import json
from flask import request
from scrapper import *
from flask import Flask
from flask_cors import CORS
from flask_cors import CORS, cross_origin
import logging
app = Flask(__name__)
CORS(app)
cors = CORS(app, resources={r"/*": {"origins": "*"}})
app = flask.Flask(__name__)
app.config["DEBUG"] = True
app.config['CORS_HEADERS'] = 'Content-Type'
@app.route('/', methods=['GET'])
def home():
return "<h1>Distant Reading Archive</h1><p>This site is a prototype API for distant reading of science fiction novels.</p>"
@app.route('/cep/logs', methods=['GET'])
def logs():
return busca_log()
@app.route('/cep/correios/', methods=['POST'])
@cross_origin()
def cep_correios():
cep = request.json['cep']
print(cep)
return verifica_cep_correios(cep)
@app.route('/cep/local/', methods=['POST'])
@cross_origin()
def cep_local():
cep = request.json['cep']
return verifica_cep_local(cep)
app.run()
解决方案
推荐阅读
- android - TabBarView:控制器的长度属性 (2) 与 TabBar 的选项卡属性中存在的选项卡数 (1) 不匹配
- python-3.x - 根据指定的迭代次数创建一个计算 pi 近似值的函数
- git - 在 git-filter-repo 之后,未在 bitbucket 服务器上更新巨大的 .Pack 文件
- html - 隐藏标签缺少参数
- wordpress - 删除 Wordpress 上 Fancybox 容器上的“溢出:隐藏”内联样式
- python - AttributeError:“ParsedRequirement”对象没有属性“req”
- mysql - SpringBoot with MariaDB:驱动程序没有收到来自服务器的任何数据包
- symfony5 - 我可以添加对 easyadmin 列表过滤器的权限吗?
- javascript - 通过代理覆盖构造函数的结果
- php - 旧贝宝集成中的自动重定向